选择UITabBar项

时间:2015-07-01 08:30:45

标签: ios objective-c uitabbarcontroller uitabbar uitabbaritem

我对编程很陌生,我正在使用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://"]]; 
    } 
}

1 个答案:

答案 0 :(得分:0)

如果没有看到您的代码,很难给出一个好的答案,但我认为如果您将打开其他应用的代码从viewDidLoad移至viewWillAppear或{{1} ,它可能有用。

第一次加载视图时,会调用

viewDidAppear一次。然后,视图将保留在内存中,当您再次点击标签栏项时,它不会再次加载,因为它已经存在。每次视图显示时,您都希望这样做,因此viewDidLoadviewWillAppear似乎更适合您的需求。

此外,可能更好的解决方案是实现viewDidAppear并实现UITabBarControllerDelegate方法来检查将选择哪个viewController并从那里打开另一个应用程序。