我發現了該錯誤的視圖控制器:錯誤故事板不包含具有標識符
終止應用程序由於未捕獲的異常 「NSInvalidArgumentException」的,原因是:「故事板()不包含的圖控制器標識 「SBMenu」
在我的AppDelegate,我檢查,如果用戶連接和啓動:
- 與故事板的id「SBLogin」如果用戶尚未連接
- 或情節串連圖板ID「SBMenu」如果用戶已經連接
拆分視圖控制器I使用的xcode 6.1.1視圖控制器,sdk 8.1,部署目標7.0
在仿真器iOS 8.1上,一切正常,我沒有收到錯誤。
在模擬器的iOS 7.0.3或7.1,我得到了錯誤
代碼:
- 只有一個故事板:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { //... if(self.token != nil){ //crash self.viewController = (UIViewController *)[mainSB instantiateViewControllerWithIdentifier:@"SBMenu"]; }else{ //don't crash self.viewController = (UIViewController *)[mainSB instantiateViewControllerWithIdentifier:@"SBLogin"]; } self.window = [[UIWindow alloc]initWithFrame:[[UIScreen mainScreen]bounds]]; [self.window setRootViewController:self.viewController]; [self.window setBackgroundColor:[UIColor whiteColor]]; [self.window makeKeyAndVisible]; return YES; }
我已經檢查了其他後發現提示
- 只在本地化中的'基地'
- 故事板ID正確設置
- 測試版本
- 清潔工程之前,從模擬器刪除應用
你能展示你的代碼實例'mainSB'嗎?並且在目標的「部署信息」中的「主界面」下顯示了什麼? (另外,除了檢查Interface Builder中視圖控制器的ID「SBMenu」,嘗試實際刪除ID並重新輸入它,包括擊中返回,並重新構建...) –
從那裏文檔: 「一個標識符字符串,用於唯一標識故事板文件中的視圖控制器。在配置故事板文件時,可以在Interface Builder中爲給定的視圖控制器設置標識符。這個標識符不是視圖控制器對象本身的一個屬性,只能被故事板文件用來定位視圖控制器。「你是否在viewController? – zaph
@MattGibson代碼中設置了標識符'SBMenu',它實例化了mainSB:UIStoryboard * mainSB = [UIStoryboard storyboardWithName:@「Main」bundle:nil]; 在「Main Interface」下:字段爲空,當我將其設置爲Main時,我獲得「無法實例化UIMainStoryboardFile'Main'的默認視圖控制器 - –