【问题标题】:tabBarController is nil; can't change selectedIndex on viewDidLoadtabBarController 为零;无法更改 viewDidLoad 上的 selectedIndex
【发布时间】:2012-08-30 10:38:35
【问题描述】:

我有一个这样的 UITabBarController:

/*SomeTabBarController.h*/
@interface SomeTabBarController: UITabBarController
@end

SomeTabBarController.m 我想更改 viewDidLoad 上的活动选项卡

-(void)viewDidLoad
{
  [super viewDidLoad];
  self.tabBarController.selectedIndex = 2;
}

但是,tabBarController 是 nil。 我错过了什么? 我有一个导航控制器和 segue 推送到标签栏控制器...

谢谢

【问题讨论】:

    标签: ios uitabbarcontroller uitabbar tabbar tabbarcontroller


    【解决方案1】:

    试试这个:

    self.selectedIndex = 1;
    

    是 tabBarController :)

    【讨论】:

      【解决方案2】:

      您无法更改尚不存在的项目的属性 :) 尝试更改 viewWillAppear 或 viewDidAppear 中选定的选项卡。

      或者,如果您能够在 viewDidLoad 的代码中创建标签控制器,那么您可以简单地在下一行设置选定的索引。

      【讨论】:

      • self.tabBarController 在 vi​​ewWillAppear 和 viewDidAppear 中也是 nil。这正是我想知道的。我是否错过了一些导致 tabBarController 为零的绑定或初始化?更改 viewDidLoad 中的 selectedIndex 应该可以;至少我找到了一些建议以这种方式更改标签的示例。
      • @matthias 如果您不尝试手动设置所选索引,会发生什么?它还会崩溃吗?
      • 它根本没有崩溃。它只是不打开第二个选项卡,但仍然像默认设置一样打开第一个选项卡。
      猜你喜欢
      • 1970-01-01
      • 2021-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-20
      • 1970-01-01
      相关资源
      最近更新 更多