Khi bạn nói về đẩy Navigation Controller, nó là hầu mà bạn muốn giới thiệu nó.
- Trình bày UINavigationController
Đây là cách phổ biến nhất và đây là những gì bạn muốn làm trong hầu hết các trường hợp. UINavigationController
không thể được đẩy, nó chỉ có thể được trình bày với một bộ điều khiển xem gốc mới.
MyViewController* vc = [[MyViewController alloc]
initWithNibName:@"MyController" bundle:nil];
UINavigationController *myNav = [[UINavigationController alloc] initWithRootViewController: vc];
[self presentViewController:myNav animated:YES completion:nil];
Những gì bạn làm ở đây, là trước hết tạo ra một UINavigationController
và sau đó thiết lập cần thiết UIViewController
như bộ điều khiển gốc của nó.
- Đẩy UINavigationController
Nếu bạn có một hệ thống các ViewControllers và bạn cần phải đẩy quan điểm điều khiển có chứa điều khiển chuyển hướng bên trong, bước :
1) Đẩy ViewController, chứa UINavigationController
.
Để đẩyUINavigationController
, đầu tiên tạo ra một lớp con của UIViewController
, đó sẽ là một wrapper-/container- lớp cho UINavigationController
và nội dung của bạn.
ContainerViewController* vc = [[ContainerViewController alloc] init];
2) Thêm UINavigationController như một bộ điều khiển xem con
Trong viewDidLoad
của container của bạn (mà bạn vừa khởi tạo) chỉ cần thêm một cái gì đó như thế này:
MyNavController* myNav = [[MyNavController alloc] init];
[myNav willMoveToParentViewController:self];
myNav.view.frame = self.view.frame; //Set a frame or constraints
[self.view addSubview:myNav.view];
[self addChildViewController: myNav];
[myNav didMoveToParentViewController:self];
Những gì bạn làm đây là cơ bản nhanh chóng điều khiển chuyển hướng của bạn và thêm nó như là một bộ điều khiển con để wrapper của bạn. Đó là nó. Bạn đã thành công đã đẩy UINavigationController của mình.
Bạn phải đẩy bộ điều khiển chế độ xem, không phải bộ điều khiển điều hướng khác. Nếu bạn thực sự muốn hiển thị một bộ điều khiển điều hướng khác, bạn cần phải trình bày nó, không đẩy nó. – rmaddy
Cảm ơn rất nhiều đã sẵn sàng, lỗi đã biến mất, nhưng nó đi đến tableViewController, tôi muốn nó trên các chi tiết, Cảm ơn – Jose
Hãy xem chủ đề này http://stackoverflow.com/questions/10817305/pushing-a-navigation -controller-is-not-supported-performance-segues/23102975 # 23102975 (Tôi có một câu trả lời phù hợp với mình, nhưng có lẽ một trong số những người khác sẽ làm điều đó cho bạn.) – LordParsley