Bạn hiện không sử dụng phân đoạn phương thức một cách chính xác. Cách bạn đã thực hiện nó, bạn đang tạo ra một thể hiện mới của mỗi bộ điều khiển xem khi bạn segue thay vì trở về ví dụ bạn đến từ. Đó là lý do tại sao mức sử dụng bộ nhớ của bạn tiếp tục tăng.
Trước khi iOS 6, cách chính xác để xử lý này là:
1) xác định một phương pháp như viewController2Done
theo quan điểm điều khiển 1
2) theo quan điểm điều khiển 2, tạo ra một tài sản được gọi delegate
loại id
.
3) trong prepareToSegue
để xem điều khiển 1, thiết lập delegate
theo quan điểm điều khiển 2-self
4) theo quan điểm điều khiển 2, khi đó là thời gian để quay trở lại xem điều khiển 1, gọi [delegate viewController2Done]
5) trong viewController2Done
gọi [self dismissModalViewControllerAnimated:YES]
Phương pháp này vẫn hoạt động trong iOS 6, nhưng cũng có thể sử dụng unwind segue
mới thay thế. Để sử dụng nó, bạn sẽ xác định một phương pháp trong điều khiển điểm của bạn 1 như sau:
Objective-C:
- (IBAction)unwindFromViewController2:(UIStoryboardSegue *)segue
{
NSLog(@"and we are back");
}
Swift:
@IBAction func unwindFromViewController2(segue: UIStoryboardSegue) {
print("and we are back")
}
Sau đó, bạn muốn kiểm soát kéo từ nút trong bộ điều khiển xem 2 vào biểu tượng thoát màu cam trong thanh phía trên trình điều khiển chế độ xem trong Bảng phân cảnh. Trong cửa sổ bật lên, bạn sẽ chọn unwindFromViewController2
và thì đấy, bạn đã hoàn tất.

OMG, tôi thật ngớ ngẩn. Cảm ơn bạn! – Piotr