2013-04-07 28 views
7

Tôi có UIViewController có nút thực hiện phân đoạn phương thức cho UIViewController dưới dạng Biểu mẫu. Trên tờ biểu mẫu đó là một nút hủy bỏ với một segue thư giãn trở lại ban đầu UIViewController. Điều này dường như làm việc hoàn toàn hạnh phúc và bác bỏ tờ mẫu.iOS Unwind Segue ngừng hoạt động khi được nhúng trong bộ điều khiển điều hướng

Ngay sau khi tôi chọn UIViewController gốc và chọn tùy chọn trong XCode để nhúng trong Trình điều khiển điều hướng, khoảng cách thư giãn không còn hoạt động và biểu mẫu phương thức sẽ không còn hủy.

Tôi chắc rằng có một lời giải thích đơn giản, nhưng nó hiện đang trốn tránh tôi, vì vậy mọi ý tưởng đều được hoan nghênh.

Cảm ơn.

Trả lời

13

Tôi không biết tại sao bạn nhận được hành vi mà bạn đang thấy, tôi cũng thấy nó. Điều này xảy ra cho cả bản trình bày trang tính và biểu mẫu, nhưng không phải cho toàn màn hình. Tuy nhiên, các segue thư giãn vẫn gọi phương pháp bạn đặt trong bộ điều khiển gốc (một trong những bạn kết nối segue thư giãn). Vì vậy, tất cả các bạn cần phải làm là đặt một dòng trong phương pháp đó:

[self dismissViewControllerAnimated:YES completion:nil]; 
+0

Có, bạn nói đúng, điều đó có hiệu quả ... Hành vi rất kỳ quặc dù nó có hoạt động tốt cho toàn màn hình không? Cảm ơn bạn. – Darren

+0

@ Darren, vâng, điều này có vẻ như là một lỗi đối với tôi. Tôi không thể tìm thấy bất kỳ tài liệu nào cho biết đây là hành vi dự định. – rdelmar

+2

Tôi cũng nhìn thấy điều này trên ios 8.2 với một mô phỏng võng mạc ipad. IMO đây là lỗi – Sam

0

này đã được trả lời, nhưng ở trên đã không cho tôi giải pháp đầy đủ, vì vậy tôi nghĩ rằng tôi sẽ chia sẻ của tôi.

Đối với tôi, phương pháp thư giãn không bao giờ được gọi, vì vậy tôi không thể làm những gì được mô tả ở trên. Thay vào đó tôi thực hiện một nút đơn giản với một IBAction và gọi nó. Ví dụ về Swift bên dưới:

@IBAction func cancelToRecipeController() { 
    self.dismissViewControllerAnimated(true, completion: nil) 
    print("cancel to recipe controller ran") 
} 

Nhờ @rdelmar ở trên để gọi phương thức!

(Điều này đã được bổ sung cho ios 9)

0
self.dismissViewControllerAnimated(true, completion: nil) 

"sa thải" không làm việc cho tôi nhưng popToRoot hoạt động tốt.

[self.navigationController popToRootViewControllerAnimated:YES]; 
Các vấn đề liên quan