2014-12-23 28 views
0

我發現了該錯誤的視圖控制器:錯誤故事板不包含具有標識符

終止應用程序由於未捕獲的異常 「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正確設置
  • 測試版本
  • 清潔工程之前,從模擬器刪除應用
+0

你能展示你的代碼實例'mainSB'嗎?並且在目標的「部署信息」中的「主界面」下顯示了什麼? (另外,除了檢查Interface Builder中視圖控制器的ID「SBMenu」,嘗試實際刪除ID並重新輸入它,包括擊中返回,並重新構建...) –

+0

從那裏文檔: 「一個標識符字符串,用於唯一標識故事板文件中的視圖控制器。在配置故事板文件時,可以在Interface Builder中爲給定的視圖控制器設置標識符。這個標識符不是視圖控制器對象本身的一個屬性,只能被故事板文件用來定位視圖控制器。「你是否在viewController? – zaph

+0

@MattGibson代碼中設置了標識符'SBMenu',它實例化了mainSB:UIStoryboard * mainSB = [UIStoryboard storyboardWithName:@「Main」bundle:nil]; 在「Main Interface」下:字段爲空,當我將其設置爲Main時,我獲得「無法實例化UIMainStoryboardFile'Main'的默認視圖控制器 - –

回答

0

This will only work if you are using Storyboard(s).

你需要做的就是進入你的故事板,並找到視圖控制器是你的「SBMenu」類的東西。

打開側面板,並發現這一點:

enter image description here

尋找這樣Storyboard ID盒子。確保您的SBMenu類在該框內有SBMenu,並且還要檢查您的SBLogin類。

我希望有幫助!

0

我面臨同樣的問題,但與UISplitViewController,經過數小時的搜索,我發現禁用大小類,將解決這個問題。

相關問題