2016-12-06 73 views
2

其實我有導航控制器作爲根控制器它嵌入main.storyboard,我有兩個屏幕一個屏幕登錄和另一個家庭作爲登錄憑據我需要跳過登錄屏幕,我需要證明家庭screen.From的appdelegate我這樣做跳過它不能正常工作如何從ios中的appdelegate呈現不同的視圖控制器

Unbalanced calls to begin/end appearance transitions for <UINavigationController: 0x7fadf384c600>. 

let storyboard=UIStoryboard.init(name: "Main", bundle: nil) 
     let navigationController=storyboard.instantiateInitialViewController() 
     let username=UserDefaultUtil.getString(key: AppConstants.PREF_USERID) 
     print(username!) 
     if username != "" 
     { 
      window?.rootViewController=navigationController 
      let sectionController=SectionController(nibName: "SectionController" , bundle: nil) 
      navigationController?.present(sectionController, animated: true, completion: nil) 
     } 
+1

做viewWill主頁的首頁。 –

回答

3

我猜你是想呈現navigationController你sectionController,它不是一個真正它是如何工作的,試試這個代碼:

let navigationController = self.storyboard?.instantiateInitialViewController() as! UINavigationController 

和取代目前與此:

navigationController.setViewControllers([sectionController], animated: false) 

或剛落navigationController實例化和使用代碼創建它並將它設置爲window?.rootViewController

let sectionController=SectionController(nibName: "SectionController" , bundle: nil) 
let nav = UINavigationController(rootViewController: sectionController) 
window?.rootViewController = nav 
0

首先,檢查在登錄頁面的用戶憑據。然後使用:

if hasCredentials { 
let vc:AnyObject! = self.storyboard?.instantiateViewController(withIdentifier: "someViewController") 
self.show(vc as! UIViewController, sender: vc) 
} 

旁註:就個人而言,我這樣做,從登錄頁面,因爲它簡化了過程,我不喜歡重坐在我的AppDelegate。如果您認爲不希望人們看到您的登錄屏幕已經是會員,您可以通過AppDelegate進行操作,但考慮到在加載過程中用戶體驗可能會減少,如果這是您決定採用的路線。

相關問題