Vâng, với một số bạn câu hỏi này nghe có vẻ vô lý nhưng tôi đang thảo luận với các đồng đội của tôi về thiết kế của một ứng dụng ios và tôi cần ý kiến của bạn về nó.Chúng ta có nên tránh vòng lặp segue giữa hai chế độ xem không?
Việc thiết kế cũ mà tôi không đồng ý là như sau
- Chúng tôi có ViewControllerA trong đó có nút "Go To B". Nút có khoảng cách PUSH để đi đến B.
- Chúng tôi có ViewControllerB chứa Nút "Đi tới A". Nút có khoảng cách PUSH để đi đến A.
- Chúng tôi phải di chuyển giữa 2 ViewController a nhiều.
Như bạn có thể thấy, có một vòng lặp segue giữa ViewController A và B và tôi nghĩ chúng ta không bao giờ nên để nó xảy ra. Tôi thích đi từ B đến A bằng nút "Back" trong thanh điều hướng.
Làm thế nào nghiêm trọng là vòng lặp PUSH segue trong thiết kế? Có thể chấp nhận trong một số trường hợp không? Tôi có thể thấy được đề nghị thiết kế tốt bởi apple đâu (nếu có bất kỳ?)
EDIT: tôi cố gắng "pop trước khi đẩy" giải pháp bởi nfarshchi nhưng nó không work.This là cách tôi đã làm: 1) Tôi không thể tạo phân đoạn từ VC A sang VC B và phân đoạn từ VC B sang VC A cùng một lúc. Dường như bảng phân cảnh ngăn không cho nó xảy ra 2) Vì vậy, tôi tạo một segue có mã định danh là "gotoB" từ nút "Đi tới B" trong VC A đến VC B và một phân đoạn có mã định danh là "gotoA" từ nút "Chuyển đến A "trong VC B để VC A.
Vì vậy, các Storyboard sẽ trông như thế này:
VC X --- Đẩy ---> VC Một < ---- Đẩy ----> VC B (lý do tôi cần ViewController X được giải thích sau) 3) Trong VC AI có điều này:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
NSLog(@"Prepage for segue go to B") ;
if ([[segue identifier] isEqualToString:@"gotoB"]) {
[self.navigationController popViewControllerAnimated:NO];
}
}
tôi cần VC X bởi vì tôi không thể pop một ViewController từ Stack nếu chỉ có một ViewController trong đó.
Bây giờ có vẻ như đúng, nhưng khi tôi nhấp "Đi tới B", thay vào đó, nó đã chuyển sang VC X. Rõ ràng là popViewControllerAnimated trên đã xuất hiện VC A, và đó là tất cả, segue cho VC B không còn bị bắn nữa. Kết quả là VC B không bị đẩy vào Stack như mong đợi.
Vì vậy, tôi nghĩ rằng đó là không khả thi để thực hiện giải pháp nfarshchi của
Cảm ơn. Nhưng tôi không nghĩ rằng giải pháp của bạn về "pop trước khi đẩy" sẽ làm việc – grandagile
Không có người đàn ông, tôi không có nghĩa là bạn bật trước khi bạn đẩy, tôi đã nói bằng cách sử dụng 'UINavigationController' bạn chỉ đẩy' UIViewController' một lần và bạn cũng có thể có một nút quay lại đơn giản. và không cần phải bật lại nữa. 'UINavigationController' sẽ làm điều đó cho bạn. – nfarshchi
Hãy xem xét bạn có 'ViewControllerA' và' ViewControllerB'. trên 'A' bạn có thể có một Button và [self.navigationController pushViewController: viewControllerB hoạt hình: YES]; – nfarshchi