使用故事板中的选项卡控制器以编程方式打开视图

时间:2013-10-01 23:31:24

标签: ios

我有一个故事板,其中包含以下视图(场景):

  • 登录屏幕
  • 带有4个标签的TabBarController(图书馆,工作流程,设置和下载

根据用户登录点击按钮(登录),我以编程方式加载标签栏控制器,始终使用以下代码的第一个标签:

         LibraryWebViewContoller *lbc = [self.storyboard instantiateViewControllerWithIdentifier:@"docovaMainTabBarController"];
         [self presentViewController:lbc animated:YES completion:nil];

我想要做的是能够使用故事板中的TabBarController以编程方式打开不同的选项卡。到目前为止,我能够使用第一个选项卡打开标签栏控制器但是没有运气打开其他标签,因为它似乎总是加载TabBarController并选择了第一个标签。

4 个答案:

答案 0 :(得分:14)

我能够通过使用以下代码来解决问题:

UITabBarController *tbc = [self.storyboard instantiateViewControllerWithIdentifier:@"docovaMainTabBarController"];
tbc.selectedIndex=1;
[self presentViewController:tbc animated:YES completion:nil];

另外,请记住编辑故事板并将UITabBarController的故事板ID设置为docovaMainTabBarController,以便在故事板中进行唯一标识。

夫特

  let tbc = self.storyboard.instantiateViewController(withIdentifier:"docovaMainTabBarController") as! UITabBarController
   tbc.selectedIndex = 1
   self.present(tbc, animated: true, completion:nil)

答案 1 :(得分:1)

假设您想要选择第二个视图控制器。在选项卡栏控制器上设置activeViewController属性

lbc.activeViewController = [lbv.viewControllers objectAtIndex:1];

(不确定lbc是标签栏控制器还是标签栏中的第一个视图控制器 - 假设它是)

答案 2 :(得分:0)

Swift4:

let tbc = storyboard.instantiateViewController(withIdentifier: "docovaMainTabBarController") as? UITabBarController tbc.selectedIndex = 1 present(tbc, animated: true) {() -> Void in }

答案 3 :(得分:0)

雨燕5

let storyboard = UIStoryboard(name: "TabBarController", bundle: .main)
let tabbarController = storyboard.instantiateInitialViewController()
tabbarController?.modalPresentationStyle = .fullScreen
self.present(tabbarController!, animated: true, completion: nil)