[英]Xcode 4 for Dummies: Why are Storyboard Settings not Being Applied When the App Runs?
解
确保在plist中将情节提要名称列为主要的情节提要文件名称。
我有一个带有UINavigationViewController
的Storyboard
,该Storyboard
已连接到NavigationViewController
类,并将其设置为UIWindow rootViewController
。 当应用程序运行时(在Simulator(5.1)中),我得到一个空白的黑屏,顶部带有蓝色导航栏。
第一个问题是在情节提要中,我将导航栏设置为黑色。 我还将状态栏设置为半透明黑色。 当应用运行时,两种样式均不被接受。
第二个问题是导航控制器的视图为空,即使在情节提要中它与UITableViewController
有关系。
我该如何解决这两个问题。 我刚刚再次开始使用Xcode,之前一直使用4.0,所以情节提要让我失望...
更新
这是要求的代码。 显然,我无法发布情节提要(可以吗?)。
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
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
问题是您将一个完全空白的根控制器(而不是故事板上的那个)设置为根控制器。 您要做的是删除部分代码,然后在情节提要上单击“是初始视图控制器”的内容。
使用情节提要时,通常不必修改appdelegate,因为xcode设置了将出现的初始视图,而所有这些仅基于您设置情节提要的方式。 您可以在plist中检查此内容,其中指出哪个情节提要板将用作主要情节提要。
如果要这样加载导航控制器,则可以执行类似的操作,您必须从情节提要中获取视图控制器并进行显示。
InstantiateViewControllerWithIdentifier
但是在使用情节提要时不需要这样做,因为它会自动加载设置为初始情节提要的任何一个(可以将其视为指向箭头的viewcontroller)
您的应用程序委托方法应如下所示
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
return YES;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.