1

我有一个带有标签栏的应用程序,其中包含 5 个标签。我决定使用“主屏幕”而不是直接在第一个选项卡中打开应用程序。我的主屏幕将包含一条欢迎消息和 5 个按钮,可直接转到所需的选项卡。示例:第 4 个按钮将转到第 4 个选项卡。单击一个按钮后,不应再看到主屏幕。导航模式将通过标签栏。

My Home View Controller 5 个按钮和对 Tab Bar Controller 的引用,以传递单击的按钮。标签栏控制器 ( @interface TabBar : UITabBarController <UITabBarControllerDelegate>) 控制 5 个标签开始的屏幕。由于某些原因,我无法[self.tabBarController setSelectedIndex:3]; 上班。我把它放进去- (void)viewDidLoad,但它什么也没做。

有人知道为什么不调用 setSelectedItem 吗?

编辑:看看那个问题:

self.tabBarController.selectedIndex = 1;

NSLog(@"%i", self.tabBarController.selectedIndex);

在运行时,我得到 0 作为 NSLog 的结果...为什么设置器不工作?

4

1 回答 1

1

您可以自定义选项卡栏控制器的转场并命名转场(例如,使用“yourSegueName”)。

不仅仅是在所需的标签页调用 UITabBarController 和 setSelectedIndex :

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if ([[segue identifier] isEqualToString:@"yourSegueName"]){
    UITabBarController *destController = [segue destinationViewController];
    [destController setSelectedIndex:3];
}

}

于 2014-08-06T05:12:33.930 回答