我在我的应用上开发push notification
。我希望当人们点击推送消息时,app会打开一个特定的控制器;
如果我这样做:
storyBoardName = @"MyStoryboardName";
UIStoryboard* storyBoard = [UIStoryboard storyboardWithName:storyBoardName bundle:nil];
MainWebController* MainWeb = [storyBoard instantiateViewControllerWithIdentifier:@"MainWeb"];
MainWeb.urlToLoad = URL_TO_LOAD;
self.window.rootViewController = MainWeb;
[self.window makeKeyAndVisible];
有效,我可以看到MainWeb
当我点按推按按钮但控制器视图覆盖了所有屏幕:标签栏和导航栏都被隐藏了!
我知道rootviewcontroller
是uitabbar
:
NSLog(@"Controller: %@",self.window.rootViewController.debugDescription);
答案 0 :(得分:4)
解决:
UITabBarController *tabController = (UITabBarController *)self.window.rootViewController;
tabController.selectedIndex = 0;
UINavigationController *navigationController = (UINavigationController *)tabController.selectedViewController;
[navigationController pushViewController:MainWeb animated:YES];
答案 1 :(得分:0)
您要将rootViewController
设置为MainWebController
来替换UIViewController
。这是Storyboard
中的最初UIViewConroller
吗?
从您的问题看,最初的TabViewController
似乎是UIViewController
,您真正想要的是在此内部设置{{1}}。