Vì vậy, tôi figured it out, dựa chủ yếu từ bài này - http://makeapppie.com/2014/09/15/swift-swift-programmatic-navigation-view-controllers-in-swift/
Trong SecondViewController
, trên khai báo lớp, thêm mã này:
protocol SecondVCDelegate {
func didFinishSecondVC(controller: SecondViewController)
}
Sau đó bên trong của SecondViewContoller
thêm biến lớp học:
var delegate: MeditationVCDelegate! = nil
Sau đó bên trong hàm của bạn rằng mục tiêu nút bấm của bạn, thêm này:
self.navigationController?.popViewControllerAnimated(true)
delegate.didFinishSecondVC(self)
Những gì chúng ta đang làm gì ở đây đang làm pop trong SecondViewController
và không đi qua bất kỳ dữ liệu, nhưng kể từ khi chúng tôi đã xác định một giao thức, chúng ta sẽ sử dụng nó trong ViewController
để xử lý dữ liệu.
Vì vậy, tiếp theo, trong ViewController
, thêm giao thức bạn được định nghĩa trong SecondViewController
vào danh sách các lớp ViewController
thừa hưởng từ:
class ViewController: UIViewController, SecondVCDelegate { ... your code... }
Bạn sẽ cần phải thêm chức năng chúng tôi đã định nghĩa trong giao thức mới nhằm làm cho trình biên dịch trở nên hạnh phúc. Bên trong lớp ViewController
's, thêm này:
func didFinishSecondVC(controller: SecondViewController) {
self.myBoolVar = true
controller.navigationController?.popViewControllerAnimated(true)
}
Trong SecondViewController
nơi chúng tôi đang gọi điện thoại didFinishSecondVC
, chúng tôi đang gọi phương pháp này bên trong lớp ViewController
, bộ điều khiển chúng ta popping để. Nó tương tự như nếu chúng tôi đã viết mã này bên trong SecondViewController
nhưng chúng tôi đã viết nó bên trong của ViewController
và chúng tôi đang sử dụng một đại biểu để quản lý tin nhắn giữa hai người.
Cuối cùng, trong ViewController
, trong hàm chúng ta đang nhắm mục tiêu đến đẩy-SecondViewController
, thêm mã này:
let secondVC = secondViewController()
secondVC.delegate = self
self.navigationController?.pushViewController(secondVC, animated: true)
Vậy là xong! Bạn nên được tất cả các thiết lập để vượt qua mã giữa hai bộ điều khiển xem mà không cần sử dụng storyboards!
câu trả lời mà bạn đang tìm kiếm là về bài đăng này [nó có thể truyền dữ liệu với popViewControllerAnimated?] [ 1] [1]: http://stackoverflow.com/questions/13509832/it-possible-to-pass-data-with-popviewcontrolleranimated –