Ios 如何从UIButton切换到选项卡栏项目?

Ios 如何从UIButton切换到选项卡栏项目?,ios,uibutton,uitabbarcontroller,tabbar,segue,Ios,Uibutton,Uitabbarcontroller,Tabbar,Segue,我有一个带有选项卡栏的应用程序,其中包含5个选项卡。我决定使用“主屏幕”,而不是直接在第一个选项卡中打开应用程序。我的主屏幕将包含一条欢迎信息和5个按钮,可直接切换到“通缉犯”选项卡。示例:第四个按钮将转到第四个选项卡。单击一个按钮后,将再也看不到主屏幕。导航模式将通过选项卡栏显示 “我的主视图”控制器有5个按钮和一个指向选项卡栏控制器的引用,用于传递单击的按钮。选项卡栏控制器(@界面选项卡栏:UITabBarController)控制5个选项卡启动的屏幕。由于某些原因,我无法获取[self.t

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

“我的主视图”控制器有5个按钮和一个指向选项卡栏控制器的引用,用于传递单击的按钮。选项卡栏控制器(
@界面选项卡栏:UITabBarController
)控制5个选项卡启动的屏幕。由于某些原因,我无法获取
[self.tabBarController setSelectedIndex:3];
开始工作。我把它放在
-(void)viewDidLoad
中,但它什么也不做

有人知道为什么不叫setSelectedItem吗

编辑:看看这个问题:

self.tabBarController.selectedIndex = 1;

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

在运行时,我得到0作为NSLog的结果。。。为什么setter不能工作?

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

而不仅仅是调用UITabBarController并在所需的选项卡页面设置SelectedIndex:

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

}

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

而不仅仅是调用UITabBarController并在所需的选项卡页面设置SelectedIndex:

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

}

请通过
-viewDidLoad:
方法发布您的代码。其中没有什么令人印象深刻的地方,事实上这是我知道的唯一方法。-(void)viewDidLoad{[super viewDidLoad];NSLog(@“didLoad”);[self.tabBarController setSelectedIndex:3];}选项卡栏控制器是否正确链接到故事板中的视图控制器?我的控制器到接口之间没有IBOutlet,因为默认情况下,选项卡栏控制器已经有一个选项卡栏。但是,当我尝试将我的类连接到现有的选项卡栏时,我在运行时遇到了崩溃。例如,我试图将选项卡栏的委托设置为类本身,但应用程序崩溃。应该是这样吗?请从
-viewDidLoad:
方法发布代码。那里没有什么令人印象深刻的地方,事实上这是我知道的唯一方法。-(void)viewDidLoad{[super viewDidLoad];NSLog(@“didLoad”);[self.tabBarController setSelectedIndex:3];}选项卡栏控制器是否正确链接到故事板中的视图控制器?我的控制器到接口之间没有IBOutlet,因为默认情况下,选项卡栏控制器已经有一个选项卡栏。但是,当我尝试将我的类连接到现有的选项卡栏时,我在运行时遇到了崩溃。例如,我试图将选项卡栏的委托设置为类本身,但应用程序崩溃。应该是这样的吗?