【问题标题】:Xcode 5. Tabbed application without storyboard?Xcode 5. 没有情节提要的选项卡式应用程序?
【发布时间】:2014-06-12 20:14:18
【问题描述】:
问题类似于this one,但它是在 Xcode 5 不存在时创建的。而这个问题仍然没有答案。关于如何删除storyboard也有类似的问题,但都是关于导航控制器,而不是标签栏控制器。
我的行动顺序:
创建选项卡式应用程序
删除所有情节提要文件
从 .plist 中删除情节提要
创建 UITabBarController 子类并编辑 xib
更改应用委托:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
BKTabController *navVC = [[BKTabController alloc] initWithNibName:@"BKTabController" bundle:nil];
self.window.rootViewController = navVC;
[self.window makeKeyAndVisible];
return YES;
}
结果是黑屏,有一个灰色的地方而不是标签栏。
错在哪里?
【问题讨论】:
标签:
storyboard
uitabbarcontroller
xcode5
xib
tabbed
【解决方案1】:
你看到黑屏是因为你的标签栏是空的,所以你必须将 ViewController 添加到你的 TabController。
像这样修改你的 AppDelegate:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
BKTabController *navVC = [[BKTabController alloc] initWithNibName:@"BKTabController" bundle:nil];
self.window.rootViewController = navVC;
FirstViewController* firstView = [[FirstViewController alloc]initWithNibName:nil bundle:nil];
firstView.title = @"FIRST"; //THIS WILL BE THE TITLE OF YOUR FIRST TAB
SecondViewController* secondView = [[SecondViewController alloc]initWithNibName:nil bundle:nil];
secondView.title = @"SECOND";//THIS WILL BE THE TITLE OF YOUR SECOND TAB
//ADD VIEW CONTROLLER TO YOUR TAB CONTROLLER
self.tabBarController.viewControllers = @[firstView,secondView];
[self.window makeKeyAndVisible];
return YES;
}
总结:
- 向您的 Xcode 项目添加两个或多个新的 ViewController(例如
第一视图控制器,第二视图控制器)。
- 通过将此 ViewControllers 添加到您的标签栏控制器来修改您的应用委托。