Gup*_*R4c 0 xcode storyboard ios xcode4.3 ios5.1
解
确保在plist中将故事板名称列为主故事板文件名.
我有一个Storyboard
与UINavigationViewController
该是连接到一个NavigationViewController
类,它的设置为UIWindow rootViewController
.当应用程序运行时(在模拟器(5.1)中),我得到一个空白的黑屏,顶部有蓝色导航栏.
第一个问题是在故事板中,我将导航栏设置为黑色.我还将状态栏设置为半透明黑色.应用程序运行时,这两种样式都没有被尊重.
第二个问题是导航控制器的视图是空的,即使在故事板中它与a有关系UITableViewController
.
我该如何解决这两个问题.我刚开始再次使用Xcode并且之前一直使用4.0,所以故事板让我失望......
UPDATE
这是所要求的代码.显然我不能发布故事板(可以吗?).
AppDelegate中:
#import "AppDelegate.h"
@implementation AppDelegate
@synthesize window = _window;
@synthesize navigationController;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
navigationController = [[NavigationViewController alloc] init];
self.window.rootViewController = navigationController;
[self.window makeKeyAndVisible];
return YES;
}
- (void)applicationWillResignActive:(UIApplication *)application {
}
- (void)applicationDidEnterBackground:(UIApplication *)application {
}
- (void)applicationWillEnterForeground:(UIApplication *)application {
}
- (void)applicationDidBecomeActive:(UIApplication *)application {
}
- (void)applicationWillTerminate:(UIApplication *)application {
}
@end
Run Code Online (Sandbox Code Playgroud)
NavigationViewController:
#import "NavigationViewController.h"
@interface NavigationViewController ()
@end
@implementation NavigationViewController
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
}
return self;
}
- (void)viewDidLoad {
[super viewDidLoad];
}
- (void)viewDidUnload {
[super viewDidUnload];
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
@end
Run Code Online (Sandbox Code Playgroud)
问题是您将根控制器设置为完全空白的根控制器,而不是故事板中的控制器.你想要做的是删除代码的那一部分,只需在故事板上点击"是初始视图控制器"的东西
当使用故事板时,您通常不必修改appdelegate,因为xcode设置将显示的初始视图以及所有这些仅基于您如何设置故事板.你可以在plist中检查这个,它说哪个故事板将被用作主要故事板.
如果你想加载那样的导航控制器那么你可以做类似的事情,你必须从故事板本身获取viewcontroller并呈现它.
instantiateViewControllerWithIdentifier
但是在使用故事板时没有必要,因为它会自动加载设置为初始的那个(可以看作是带有箭头指向它的viewcontroller)
您的应用委托方法应如下所示
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
return YES;
}
Run Code Online (Sandbox Code Playgroud)