2014-09-20 67 views
-1

我有这个布尔在我AppDelegate.m:继续使用此bool的正确方法是什么?

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
    { 
     self.window = [[UIWindow alloc] initWithFrame:UIScreen.mainScreen.bounds]; 

     UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil]; 

     UIViewController *viewController = // determine the initial view controller here and instantiate it with [storyboard instantiateViewControllerWithIdentifier:<storyboard id>]; 

     self.window.rootViewController = viewController; 
     [self.window makeKeyAndVisible]; 

     return YES; 
    } 

我得到一个错误的故事板*,但什么,我主要是试图做的是在比主一个不同的视图控制器初始化应用程序。我拥有所有带有ID的视图控制器(例如我想要启动的视图名为“Home”)。如果说我的ViewController ID是在家,我该如何正确写这个布尔?

我的main.m:

#import <UIKit/UIKit.h> 
#import "AppDelegate.h" 

int main(int argc, char * argv[]) { 
    @autoreleasepool { 
     return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 
    } 
} 

我得到的是零每当我试图从我的联系人列表页面返回到原来的主页,因此崩溃,并突出了零线。这个和上面的代表布尔都给我提出了一些问题。任何澄清将非常感谢,谢谢。

+0

你有一个堆栈跟踪?每次崩溃都需要解决它的信息。 – trojanfoe 2014-09-20 20:06:14

+0

是的,我可以发布更新。 @trojanfoe – Gav 2014-09-21 01:39:29

+0

你有一个名为MainStoryboard.storyboard的文件吗? – Sjors 2014-09-21 09:58:59

回答

0

使用此在您的AppDelegate.m

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    self.window = [[UIWindow alloc] initWithFrame:UIScreen.mainScreen.bounds]; 



    HomeController *viewController = // initialise it 

    self.window.rootViewController = viewController; 
    [self.window makeKeyAndVisible]; 

    return YES; 
} 

或在故事板只是把指向arror到你想作为一个根视图控制器视图控制器。

+0

我这样做,它期待viewController被命名为UIViewController出于某种原因,并给我的错误。我也将它指向根视图,但由于某种原因,仍然给我错误。但我的main.m是给我真正的问题,如果我启动我的应用程序崩溃,因为 回报UIApplicationMain(ARGC,ARGV,零,NSStringFromClass([AppDelegate类))的; – Gav 2014-09-20 18:31:43

0

堆栈跟踪解释什么是错的:

  • 终止应用程序由于未捕获的异常“NSInvalidArgumentException”,理由是:“找不到一个故事板 名为‘’捆绑一个NSBundle(加载)” MainStoryboard *

您的故事板不叫“MainStoryboard”。

+0

这正是我想说的,包含所有视图控制器的整个故事板被称为Main.Storyboard,但我希望应用程序启动的是在名为“Home”的视图控制器上。我不知道如何解决这个问题,我也会更新一个关于堆栈溢出的问题的链接。 – Gav 2014-09-21 01:56:46

+0

所以主视图控制器在Main.storyboard中?首先,在UIStoryboard storyboardWithName中,您必须传入“Main”作为故事板名称。接下来,您想通过调用故事板对象上的instantiateViewControllerWithIdentifier来从故事板获取主页VC。请注意,您的主视图控制器的标识符必须在视图控制器的身份检查器中设置。设置故事板ID和恢复ID,它们可以与故事板ID相同。 – NRitH 2014-09-21 02:04:20

+0

我已经设置了故事板ID以及家用控制器的恢复ID,您在UIStoryboard storyboardWithName中说的是什么意思? 你的意思是这条线吗? UIStoryboard * storyboard = [UIStoryboard storyboardWithName:@“MainStoryboard”bundle:nil]; 我将“* storyboard”更改为Main或“@”MainStoryboard“”更改为Main? 我试图使它成为家的原因是因为我想添加一个名为“联系人”或酒吧按钮项的按钮,在那里有人可以点击访问他们的联系人,但我甚至无法从家中获得根视图联系人是它的一部分吗? – Gav 2014-09-21 02:15:14

相关问题