iOS首次启动视图

我正试图把第一个发射视图。 我已经尝试了一些东西,但不会工作。

这是我有什么:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { UIPageControl *pageControl = [UIPageControl appearance]; pageControl.pageIndicatorTintColor = [UIColor lightGrayColor]; pageControl.currentPageIndicatorTintColor = [UIColor blackColor]; pageControl.backgroundColor = [UIColor whiteColor]; return YES; if ([[NSUserDefaults standardUserDefaults] boolForKey:@"yourCondition"]) { //launch your first time view self.viewController = [[viewController alloc] initWithNibName:@"viewController" bundle:nil]; } else { //launch your default view self.viewController = [[viewController alloc] initWithNibName:@"defaultViewController" bundle:nil]; [[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"yourCondition"]; [[NSUserDefaults standardUserDefaults] synchronize]; } } 

不知何故,这是行不通的,它说viewController没有find作为AppDelegate的对象types。 有任何想法吗?

如果你什么都不做,故事板的初始视图控制器将会出现。 如果你想要发生其他事情,你想要设置的是self.window.rootViewController 。 在这种情况下,您还需要手动创build并显示窗口。

你的application:didFinishLaunchingWithOptions:的实现有一些错误application:didFinishLaunchingWithOptions:这绝对是你的烦恼的原因。

我build议你阅读一些关于iOS开发入门的教程,因为如果你打算在未来进行任何严肃的开发,这些基本概念是你需要掌握的。

这就是说,下面的代码应该看你的权利:

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { [self setWindow:[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]]; UIViewController *viewController = nil; if ([[NSUserDefaults standardUserDefaults] boolForKey:@"yourCondition"]) { //launch your first time view viewController = [[viewController alloc] initWithNibName:@"viewController" bundle:nil]; } else { //launch your default view viewController = [[viewController alloc] initWithNibName:@"defaultViewController" bundle:nil]; [[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"yourCondition"]; [[NSUserDefaults standardUserDefaults] synchronize]; } [[self window] setRootViewController:viewController]; [[self window] makeKeyAndVisible]; return YES; } 

application:didFinishLaunchingWithOptions:的默认实现application:didFinishLaunchingWithOptions:期望您返回一个布尔值,由方法签名指示。

您也错过了设置主要NSWindow的方法开始时的重要调用,以供您的应用程序呈现。

正如@matt所指出的那样,你的代码期望你有一个AppDelegate属性,它可以保存你对viewController的引用。 从你提到的编译错误,你似乎没有这种关系设置。 碰巧,你可能不需要这个,因为你可以通过设置你的NSWindowrootViewController属性来达到同样的rootViewController

再次,我会build议你阅读一些初学者的iOS开发教程或购买一本像样的书,因为这样的问题是相当重要的。 如果你一个人遇到麻烦,你只会发现自己更加困惑,并可能需要帮助,开始钻研更复杂的代码。

Interesting Posts