2016-06-01 73 views
0

後我儘量讓從登錄頁面的TabBar控制器SEGUE」一個NSBundle, 我的應用程序不能運行了不能在包中加載NIB:在iOS版雨燕與

警告如下。

2016-06-01 18:15:49.255 noonting[62702:982483] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Could not load NIB in bundle: 'NSBundle </Users/HK/Library/Developer/CoreSimulator/Devices/F801E079-1231-47D6-B108-0644D7F82931/data/Containers/Bundle/Application/48A07480-11CA-4140-AA53-A405473635C3/noonting.app> (loaded)' with name 'Home' and directory 'Main.storyboardc'' 
*** First throw call stack: 
(
    0 CoreFoundation      0x000000010e6b4d85 __exceptionPreprocess + 165 
    1 libobjc.A.dylib      0x0000000110458deb objc_exception_throw + 48 
    2 CoreFoundation      0x000000010e6b4cbd +[NSException raise:format:] + 205 
    3 UIKit        0x000000010f2a4c89 -[UINib instantiateWithOwner:options:] + 499 
    4 UIKit        0x000000010f61f314 -[UIStoryboard instantiateViewControllerWithIdentifier:] + 181 
    5 UIKit        0x000000010f61f467 -[UIStoryboard instantiateInitialViewController] + 69 
    6 UIKit        0x000000010eedc89f -[UIApplication _loadMainStoryboardFileNamed:bundle:] + 94 
    7 UIKit        0x000000010eedcbcf -[UIApplication _loadMainInterfaceFile] + 260 
    8 UIKit        0x000000010eedb3ef -[UIApplication _runWithMainScene:transitionContext:completion:] + 1392 
    9 UIKit        0x000000010eed8714 -[UIApplication workspaceDidEndTransaction:] + 188 
    10 FrontBoardServices     0x00000001123138c8 __FBSSERIALQUEUE_IS_CALLING_OUT_TO_A_BLOCK__ + 24 
    11 FrontBoardServices     0x0000000112313741 -[FBSSerialQueue _performNext] + 178 
    12 FrontBoardServices     0x0000000112313aca -[FBSSerialQueue _performNextFromRunLoopSource] + 45 
    13 CoreFoundation      0x000000010e5da301 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17 
    14 CoreFoundation      0x000000010e5d022c __CFRunLoopDoSources0 + 556 
    15 CoreFoundation      0x000000010e5cf6e3 __CFRunLoopRun + 867 
    16 CoreFoundation      0x000000010e5cf0f8 CFRunLoopRunSpecific + 488 
    17 UIKit        0x000000010eed7f21 -[UIApplication _run] + 402 
    18 UIKit        0x000000010eedcf09 UIApplicationMain + 171 
    19 noonting       0x000000010e0f7be2 main + 114 
    20 libdyld.dylib      0x0000000110f2592d start + 1 
    21 ???         0x0000000000000001 0x0 + 1 
) 
libc++abi.dylib: terminating with uncaught exception of type NSException 

我的第一次嘗試代碼如下。 「家」是的TabBar控制器的標識

self.performSegueWithIdentifier("Home", sender: nil) 

let appDelegate = UIApplication.sharedApplication().delegate! as! AppDelegate 

let initialViewController = self.storyboard!.instantiateViewControllerWithIdentifier("Home") //as! UIViewController 
appDelegate.window?.rootViewController = initialViewController 
appDelegate.window?.makeKeyAndVisible() 

我的第二次嘗試的代碼部分低於:

let storyboard: UIStoryboard = UIStoryboard(name:"Main", bundle: NSBundle.mainBundle()) 
let tabBarController: UITabBarController = storyboard.instantiateViewControllerWithIdentifier("Home") as! UITabBarController 

回答

0

你做的網頁之間Segue公司?你有沒有將identifier設置爲「Home」?如果是這樣,留下的只有一行代碼,它會工作

self.performSegueWithIdentifier("Home", sender: nil) 

在另一方面,如果你沒有設置你的TabBar控制器標識符(因爲你用故事板,這是Storyboard ID領域的TabBar控制器的身份檢查員)到「家」,您可以使用此代碼:

let appDelegate = UIApplication.sharedApplication().delegate! as! AppDelegate 

let initialViewController = self.storyboard!.instantiateViewControllerWithIdentifier("Home") //as! UIViewController 
appDelegate.window?.rootViewController = initialViewController 
appDelegate.window?.makeKeyAndVisible() 

您的日誌告訴我,您沒有設置此標識符。不要將它與segue標識符混淆,這是不同的事情,你更喜歡爲它們使用不同的字符串。