我对编程很陌生,我正在使用UITabBarController进行应用
我想在选择其中一个标签栏项目时打开另一个应用程序。我把代码放在viewDidLoad中,当我启动应用程序并第一次单击Tab Bar项时它工作得很好,但之后我再次点击它而不重新启动应用程序没有任何反应。
我已经尝试过使用tabBarController didSelectViewController和tabBar didSelectItem来尝试修复它。但似乎无法让他们工作。这是一个失败的原因,还是我只是遗漏了一些东西,或者没有将它们放在正确的位置?
代码:
-(void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {
if (tabBarController.selectedIndex == 2) {
[[UIApplication sharedApplication] openURL: [NSURL URLWithString:@"mswxmedia://"]];
}
}
答案 0 :(得分:0)
如果没有看到您的代码,很难给出一个好的答案,但我认为如果您将打开其他应用的代码从viewDidLoad
移至viewWillAppear
或{{1} ,它可能有用。
viewDidAppear
一次。然后,视图将保留在内存中,当您再次点击标签栏项时,它不会再次加载,因为它已经存在。每次视图显示时,您都希望这样做,因此viewDidLoad
或viewWillAppear
似乎更适合您的需求。
此外,可能更好的解决方案是实现viewDidAppear
并实现UITabBarControllerDelegate
方法来检查将选择哪个viewController并从那里打开另一个应用程序。