使用故事板时设置默认选项卡

任何人都可以告诉我如何设置在iOS中使用故事板时的默认选项卡。 我似乎无法弄清楚如何做到这一点。

谢谢

您可以使用以下两种方法之一:

tabBar.items = tabBarItems; tabBar.selectedItem = [tabBarItems objectAtIndex:0]; 

或从对象直接的方法

 [tabBar setSelectedItem:myUITabBarItem]; 

或者你可以结合他们来做到这一点:

 tabBar.items = tabBarItems; [tabBar setSelectedItem:[tabBarItems objectAtIndex:0]]; 

但我还没有testing该方法,希望这有助于!

虽然您可以像其他答案一样以编程方式设置初始选定的选项卡,但要在故事板中实现相同的效果,而不触摸代码,则需要执行以下操作:

  1. select故事板界面中的标签栏控制器
  2. 在“实用程序”面板中显示“标识”检查器
  3. 添加一个新的“用户定义的运行时属性”
  4. 将关键path设置为“selectedIndex”
  5. 将types设置为“数字”
  6. 将Value设置为您希望select的标签的索引(值为1将select第二个标签)
  7. 保存故事板,构build并运行应用程序

这应该是你完成上述步骤后的样子:

对于一些UITabBarController子类来说可能看起来有点矫枉过正,但是,我认为它提供了最干净的解决scheme。

  1. 创buildBaseTabBarController.swift
  2. 添加@IBInspectable并将其设置在viewDidLoad

     class BaseTabBarController: UITabBarController { @IBInspectable var defaultIndex: Int = 0 override func viewDidLoad() { super.viewDidLoad() selectedIndex = defaultIndex } } 
  3. 在故事板中,将您的UITabBarController设置为您的新子类:

在这里输入图像说明

  1. 转到属性检查器添加设置新的属性默认索引

在这里输入图像说明

  1. 当当! (:
  1. 创build一个UITabBarController的新文件子类;
  2. viewDidLoad的最后添加这个:

    self.selectedIndex = 1;

  3. 将此新文件设置为Storyboard的UITabBarController中的“自定义类”。

你完成了。

下面的代码为我工作:

 UITabBarController *tabBarController = (UITabBarController *)self.window.rootViewController; tabBarController.selectedIndex = 2; 

TabBarControllerviewDidLoad()中,将selectedIndex设置为任何你想要的。 ( 0将是第一个, 3将是第四个,等等)

在appdelegate中findapplicationDidBecomeActive函数并添加这行

 let tabBarController = self.window?.rootViewController as! UITabBarController tabBarController.selectedIndex = 0 // any index you want 

你可以通过Xcode 8或更高版本来实现这一点(只是testing它,不知道它是否可用之前)

按照@Joshua Finch的说法,但是:

  1. select条形项而不是TabBar
  2. 得到“用户定义的运行时属性”
  3. 添加新的密钥
  4. 将其命名为“选中”
  5. 将其types设置为布尔值并selecttrue /或选中checkbox

build立在Aviel Gross的答案,我只是想实现这个UITabBar,而不是一个UITabBarController。 这可以如下完成:

 class BaseTabBar: UITabBar { @IBInspectable var defaultIndex: Int = 0 { didSet { self.selectedItem = self.items?[defaultIndex] } } }