繁体   English   中英

Xcode 4 for Dummies:为什么在应用程序运行时未应用情节提要板设置?

[英]Xcode 4 for Dummies: Why are Storyboard Settings not Being Applied When the App Runs?

确保在plist中将情节提要名称列为主要的情节提要文件名称。


我有一个带有UINavigationViewControllerStoryboard ,该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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM