Xcode 4 for Dummies:为什么在应用程序运行时没有应用故事板设置?

Gup*_*R4c 0 xcode storyboard ios xcode4.3 ios5.1

确保在plist中将故事板名称列为主故事板文件名.


我有一个StoryboardUINavigationViewController该是连接到一个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)

Poc*_*chi 7

问题是您将根控制器设置为完全空白的根控制器,而不是故事板中的控制器.你想要做的是删除代码的那一部分,只需在故事板上点击"是初始视图控制器"的东西

当使用故事板时,您通常不必修改appdelegate,因为xcode设置将显示的初始视图以及所有这些仅基于您如何设置故事板.你可以在plist中检查这个,它说哪个故事板将被用作主要故事板.

如果你想加载那样的导航控制器那么你可以做类似的事情,你必须从故事板本身获取viewcontroller并呈现它.

instantiateViewControllerWithIdentifier

但是在使用故事板时没有必要,因为它会自动加载设置为初始的那个(可以看作是带有箭头指向它的viewcontroller)

您的应用委托方法应如下所示

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    return YES;
}
Run Code Online (Sandbox Code Playgroud)