2011-12-14 21 views
77

Tôi tự gọi một segue (thiết lập như là phương thức) để hiển thị một hình thức đăng nhập trong Xcode 4.2 sử dụng Storyboards với dòng mã sau đây:Đóng một cái nhìn hiển thị thông qua một phương thức segue

[self performSegueWithIdentifier:@"LoginSegue" sender:nil]; 

tôi có lẽ thiếu một cái gì đó thực sự đơn giản, tuy nhiên tôi không thể tìm thấy một cách để đóng theo chương trình xem đăng nhập và trở về xem trước đó.

Chế độ xem là một phần của bộ điều khiển chế độ xem điều hướng, vì vậy, đặt loại segue thành "push" cho phép tôi sử dụng nút quay lại để quay lại màn hình trước đó, nhưng ở chế độ "phương thức" hoàn toàn chắc chắn làm thế nào để đạt được điều này (sau khi nhấn nút, ví dụ)

Bất kỳ trợ giúp nào cũng sẽ được đánh giá cao.

+0

xcode là một IDE mà thôi, ốm chỉnh sửa này –

Trả lời

172

Nếu mục tiêu triển khai của bạn là iOS 5.0 hoặc mới hơn, sử dụng tin nhắn này:

[self dismissViewControllerAnimated:YES completion:nil]; 

Hoặc trong Swift:

self.dismissViewControllerAnimated(true, completion: nil) 

Nếu mục tiêu triển khai của bạn là lớn hơn, sử dụng này thông báo (phản đối):

[self dismissModalViewControllerAnimated:YES]; 
+0

Cảm ơn Rob, tôi đã cố gắng này đã và nó doesn' t dường như làm bất cứ điều gì. Điều này có bất kỳ điều kiện đặc biệt nào không? – Nick

+1

Tôi đã thực hiện một trường hợp thử nghiệm tầm thường với hai VC trong bảng phân cảnh. VC ban đầu có nút "Phương thức" với phân đoạn phương thức cho VC thứ hai. VC thứ hai có nút "Dismiss" được kết nối với một phương thức thực hiện '[self dismissModalViewControllerAnimated: YES]'. Nó hoạt động như mong đợi. Tôi không biết bất kỳ điều kiện đặc biệt nào. –

+0

Tôi chỉ muốn chỉ ra rằng tôi đã giải quyết vấn đề này. Là mới đối với storyboards, tôi đã không đặt loại segue của tôi để phương thức một trong một ví dụ do đó, nó là một lỗi người dùng! Cảm ơn. – Nick

4

sau đây sẽ làm việc tốt ...

[self dismissModalViewControllerAnimated:YES]; 

Tôi thực hiện chính xác điều này với trang đăng nhập trong số latest tutorial here của tôi, không có vấn đề gì.

+1

Bây giờ không được chấp nhận trong iOS7: Sử dụng dismissViewControllerAnimated: completion: thay vào đó. –

13

[self dismissViewControllerAnimated:YES completion:nil]; là một cách mới trong IOS5

3

Các mã sau đây làm việc tại nhanh chóng 3:

self.dismiss(animated: true, completion: nil) 
Các vấn đề liên quan