Mat*_*att 15 iphone subview uinavigationcontroller navigationcontroller
我有我的观点和控制器设置如此.
我想要做的是访问顶部标签栏/导航控制器,以便我可以将视图推到它上面.
我尝试了parentViewController但它所做的就是将视图推送到编程的导航控制器上.
有什么建议?
这是我设置我的根视图控制器的方式:
-(void)viewDidAppear:(BOOL)animated{
NSLog(@"ROOT APPEARED");
[super viewDidAppear:animated];
WorklistViewController *worklistController = [[WorklistViewController alloc]initWithNibName:@"WorklistView" bundle:[NSBundle mainBundle]];
UINavigationController *worklistNavController = [[UINavigationController alloc] initWithRootViewController:worklistController];
worklistNavController.navigationBar.barStyle = UIBarStyleBlackOpaque;
worklistNavController.view.frame = watchlistView.frame;
[worklistNavController.topViewController viewDidLoad];
[worklistNavController.topViewController viewWillAppear:YES];
[self.view addSubview:worklistNavController.view];
GetAlertRequestViewController *alertsController = [[GetAlertRequestViewController alloc]initWithNibName:@"AlertsView" bundle:[NSBundle mainBundle]];
UINavigationController *alertsNavController = [[UINavigationController alloc] initWithRootViewController:alertsController];
alertsNavController.navigationBar.barStyle = UIBarStyleBlackOpaque;
alertsNavController.view.frame = alertsView.frame;
[alertsNavController.topViewController viewDidLoad];
[alertsNavController.topViewController viewWillAppear:YES];
[self.view addSubview:alertsNavController.view];
}
Run Code Online (Sandbox Code Playgroud)
Dan*_*Ray 30
嵌套的ViewController(即,在实际位于NavController堆栈上的ViewController控制的视图内)不能直接访问其父视图的控制器是其堆栈成员的UINavigationController.这是句子中的一个,但它的意义是:你不能从这里到达那里.
相反,你必须通过App委托获得应用程序的NavController.
YourAppDelegate *del = (YourAppDelegate *)[UIApplication sharedApplication].delegate;
[del.navigationController pushViewController:nextViewController animated:YES];
Run Code Online (Sandbox Code Playgroud)
您正在使用UIApplication的单例(包含有关您的应用程序的各种有用信息),它具有指向AppDelegate的.delegate属性,并且包含对NavigationController的引用.
无论如何,这就是"基于导航的应用程序"Xcode模板如何设置NavController的所有权.YMMV,如果你自己推出 - 虽然如果你这样做,你可能不需要问这个问题.
JER*_*ERC 10
您可以使用以下指令:
[(UINavigationController *)self.view.window.rootViewController pushViewController:vc animated:YES];
Run Code Online (Sandbox Code Playgroud)
它对我有用:D
归档时间: |
|
查看次数: |
32983 次 |
最近记录: |