UITabBarController图标和色调暂时不显示

时间:2014-04-10 16:39:13

标签: ios ios7 uitabbarcontroller uistoryboard

我有两个故事板的应用程序。一个用于登录,另一个用于应用程序的其余部分。第二个是在用户登录时(通过NSNotification观察者)加载,使用[storyboard instantiateInitialViewController]获取第一个控制器,即UITabBarController,我将其设置为{{1} (在应用程序委托中所有这些)。

问题仅在用户首次登录时发生。标签栏不显示背景(除非我设置了一个,但它显示为纯色而不是有色默认样式),并且它不显示标签栏图标,除了所选的那个。几秒钟后,它会刷新并显示所有图标和有色背景。

应用程序中没有其他代码修改标签栏,除了自己的控制器,它在收到通知时更新标记。自动刷新所需的时间各不相同,有时大约需要2秒,有时则不会更新,除非您选择(五个)选项卡中的每一个。要重现这一点,我需要每次都卸载应用程序,因为在第一次使用后,标签​​栏的行为正常。图标在故事板文件中设置,不会以编程方式在任何地方更新。

这是第一次显示标签栏的屏幕截图: http://i.stack.imgur.com/gqT5X.png

这就是它在一段时间后的样子(并且应该): http://i.stack.imgur.com/9y8ch.png

编辑:添加了一些加载代码

这是加载两个故事板的代码:

rootViewController

使用以下代码在- (void)showInterface { UIStoryboard *storyboard; UIViewController *viewController; if ([[self.configuration userManager] userIsLoggedIn]) { storyboard = [UIStoryboard storyboardWithName:MAIN_STORYBOARD_NAME bundle:nil]; CWNTabBarController *tabController = [storyboard instantiateInitialViewController]; tabController.configuration = self.configuration; self.configuration.notificationDisplay = tabController; viewController = tabController; } else { storyboard = [UIStoryboard storyboardWithName:WELCOME_STORYBOARD_NAME bundle:nil]; CWNWelcomeController *welcomeController = [storyboard instantiateInitialViewController]; welcomeController.configuration = self.configuration; viewController = welcomeController; } [self.window performSelectorOnMainThread:@selector(setRootViewController:) withObject:viewController waitUntilDone:YES]; } 中调用上面的代码:

(BOOL)application:(UIApplication *)application willFinishLaunchingWithOptions:(NSDictionary *)launchOptions

1 个答案:

答案 0 :(得分:0)

我遇到了这个问题,我的问题是我需要在主线程中启动另一个视图控制器:

if response.statusCode == 200 {
   dispatch_async(dispatch_get_main_queue(), {
     let storyboard = UIStoryboard(name: "Main", bundle: nil)
     let vc = storyboard.instantiateInitialViewController() as! SpoktTabBarController
     self.presentViewController(vc, animated: true, completion: nil)
   })
}