2015-07-19 12 views
7

Trong ứng dụng đơn giản của tôi, tôi đã tạo một số bộ điều khiển với segues cơ bản giữa chúng:Cách relaxForSegue: orientedViewController: hoạt động?

vàng điều khiển -> BlueController -> GreenController -> OrangeController. Mỗi người trong số họ có lớp tùy chỉnh riêng của mình.

Từ OrangeController Tôi đã tạo ra thư giãnChọn số điện thoại YellowController. Không sao.

Trong mỗi lớp tôi đặt:

override func unwindForSegue(unwindSegue: UIStoryboardSegue, towardsViewController subsequentVC: UIViewController) { 
    print(unwindSegue) 
    print(subsequentVC) 
} 

Nhưng nó không được gọi là gì cả. Tại sao? Tôi nên chuẩn bị bản demo nào để thử nghiệm chức năng này?

Điều này cũng có:

func allowedChildViewControllersForUnwindingFromSource(source: UIStoryboardUnwindSegueSource) -> [UIViewController] 
func childViewControllerContainingSegueSource(source: UIStoryboardUnwindSegueSource) -> UIViewController? 
+1

"Tôi đã tạo ra một số bộ điều khiển với segues cơ bản giữa chúng" Vâng, nhưng _what_ loại điều khiển được họ và những gì loại segues chúng là gì? 'unwindForSegue' chỉ được gọi trên bộ điều khiển xem _parent. Nếu bạn không làm gì khác ngoài các phân đoạn phương thức (bản trình bày), ví dụ, nó sẽ không được gọi chút nào, bởi vì việc giải phóng bao gồm toàn bộ việc loại bỏ đơn giản. – matt

Trả lời

7

Thực hiện phương pháp này với IBAction returnType

-(IBAction) unwindForSegue:(nonnull UIStoryboardSegue *)unwindSegue towardsViewController:(nonnull UIViewController *)subsequentVC 

Trong Storyboard, liên kết điều khiển (đó là chịu trách nhiệm về hành động trở lại) với hành động thoát trong khung nhìn. enter image description here

enter image description here

+3

Sự khác biệt giữa 'relaxForSegue' bình thường là gì? –

Các vấn đề liên quan