在TabbarController中呈现NavigationalViewController

时间:2016-10-12 17:22:27

标签: ios objective-c uinavigationcontroller uitabbarcontroller

我正在开发一个iOS应用程序,结构基于标签栏。我的根视图控制器是TabBarController,但是如果第一次启动app,我需要在应用程序的开头提供一个导航视图控制器。我实现了一个FlowViewController来控制应用程序的流程。在FlowViewController中,我创建TabBarController并将其指定为rootviewcontroller。

如何在应用程序开头呈现导航视图控制器,然后呈现TabBarController。

FlowViewController

TabBarViewController *rootVC = [[TabBarViewController alloc] init];
rootVC.delegate = self;
rootVC.tabBar.translucent = NO;
self.rootViewController = rootVC;

在AppDelegate中,didFinishLaunchingWithOptions

self.flowController = [[FlowController alloc] init];

self.window = [[UIWindow alloc] initWithFrame:[ [UIScreen mainScreen] bounds]];
self.window.backgroundColor = [UIColor whiteColor];
self.window.rootViewController = self.flowController.rootViewController;

[self.window makeKeyAndVisible];

2 个答案:

答案 0 :(得分:0)

如果应用程序中需要设置屏幕,我通常会使用NSUserDefaults检查应用程序是否已在viewDidLoad()之前启动。如果没有,那么我将呈现设置viewController。用户完成设置过程后,将内容添加到NSUserDefaults,以便在启动应用程序时,它知道用户已经完成了该过程。

答案 1 :(得分:0)

在我的应用程序中,我将UINavigationController设置为root视图控制器。然后我添加了TabBarController作为UINavigationController的子代。

enter image description here

根据需要设计StoryBoard中的视图控制器。为UITabBarController设置Storyboard id并使用该storyboard标识符调用tab bar控制器。

- (IBAction为)的LoginAction:(ID)发送方{

UITabBarController *loadTabBar = [self.storyboard instantiateViewControllerWithIdentifier:@"TabBarViewControllerID"];
[self.navigationController pushViewController:loadTabBar animated:YES];

}