如何使用StoryBoard在UITabBarController中设置选定的选项卡?

Mat*_*der 23 tabs ios uistoryboard

如何在UITabBarController使用StoryBoard时切换到某个选项卡?我尝试了下面的代码,但没有成功(选项卡未选中):

self.tabBar.selectedIndex = 3;
Run Code Online (Sandbox Code Playgroud)

老实说,我使用没有StoryBoard的nib文件,上面的代码工作得很好

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions
          :(NSDictionary *)launchOptions
Run Code Online (Sandbox Code Playgroud)

但现在我无法以编程方式设置选项卡.也许还有另一个与选择标签无关的问题.我该如何切换标签?

Tom*_*voy 35

抓住你的实例,UITabBarController然后设置selectedViewController属性:

yourTabBarController.selectedViewController=[yourTabBarController.viewControllers objectAtIndex:3];//or whichever index you want
Run Code Online (Sandbox Code Playgroud)


Yan*_*chi 18

亚历山大,我认为你的问题是获得正确的标签栏实例.如果你的标签栏是你的根视图控制器,那么你可以在你的appdelegate中这样做,如果didFinishLoading方法:

UITabBarController *tabBar = (UITabBarController *)self.window.rootViewController;
    [tabBar setSelectedIndex:3];
Run Code Online (Sandbox Code Playgroud)

试一试,请告诉我结果.

  • *快速评论 - 18个月之后,如果您在appDelegate中将其转换为Swift,如上所示,您将获得预期的结果.Swift的翻译是:`让tabBar:UITabBarController = self.window?.rootViewController as!UITabBarController` (3认同)

Phi*_*ews 11

*快速评论 - 18个月之后,如果您在appDelegate中将Yanchi的解决方案转换为Swift,您将获得预期的结果.Swift翻译是:

let tabBar: UITabBarController = self.window?.rootViewController as! UITabBarController

tabBar.selectedIndex = 1
Run Code Online (Sandbox Code Playgroud)

  • 谢谢Space Monkey.愿你的船安全着陆. (4认同)