这个问题似乎有点愚蠢,但我一直在寻找答案,但是找不到。因此,我正在开发一个在客户端之间集成Parse推送通知的应用程序。该应用程序的UITabBarController
中有TabBarViewController
(作为自定义类的storyboard
),并且在应用程序中的某个位置(在关闭应用程序时收到推送),我必须将TabBarViewController
设置为我的RootViewController
,以便进行进一步的操作,例如[TabBarController doSomething];
总之,我试图显示TabBarViewController
的第三个选项卡(索引:2),并执行在TabBarViewController
类中找到的函数以在第三个选项卡的视图中显示内容。
我正在尝试执行以下操作:
在我的AppDelegate.m中的didFinishLaunchingWithOptions:方法中:
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
TabBarViewController* tabBarController = (TabBarViewController*)[storyboard instantiateViewControllerWithIdentifier:@"<StoryboardIDofTabBarViewController>"];
tabBarController.selectedIndex = 2;
self.window.rootViewController = tabBarController;
[self.window makeKeyAndVisible];
[tabBarController doSomething];
我觉得该解决方案需要委托,但我真的不知道如何实现。我的控制器未嵌入导航控制器中,因此不确定是否可以推送
TabBarController
。任何帮助,将不胜感激。谢谢
最佳答案
这对我的应用程序didFinishLaunchingWithOptions:(NSDictionary *)launchOptions来说是完美的
AppDelegate.h
@property (nonatomic, retain) IBOutlet UITabBarController *tabBarController;
AppDelegate.m
UIStoryboard *storyboard = [[UIStoryboard alloc] init];
storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:nil];
UIViewController *tabBarControllerView = [storyboard instantiateViewControllerWithIdentifier:@"tabBarController"];
[self.window setRootViewController:tabBarControllerView];
tabBarController = (UITabBarController *)self.window.rootViewController;
tabBarController.delegate = (id)self;
tabBarController.selectedIndex = 2;
**验证“instantiateViewControllerWithIdentifier”与情节提要中的StoryBoard ID匹配。希望这可以帮助。
故事板的屏幕截图:
关于ios - 启动时将TabBarViewController设置为AppDelegate中的根 View ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26980820/