0

メイン画面に 4 つのビュー コントローラーがあるという問題に直面しています。ユーザーがメイン VC から 2 番目のビュー コントローラーに直接移動する場合。popToViewController を使用して最初の VC に移動できません。メモリには、メイン VC と 2 番目の VC である 2 つの ViewController しかないためです。

まだ初期化されていない最初の VC に移動するには?
コードは次のとおりです。

var viewControllersArray : NSArray = self.navigationController!.viewControllers!
var count = viewControllersArray.count
var i = 0
for i ; i < count ; i++ {
    var obj = viewControllersArray.objectAtIndex(i) as! UIViewController
    if obj.isKindOfClass(ThirdVC) {
        self.navigationController?.popToViewController(obj as UIViewController, animated: true)
    }
}

解決策を提案してください。前もって感謝します。

注:instantiateViewControllerWithIdentifierを実行していますが、問題は、受け入れられなかった2番目のVCに移動することです。

4

1 に答える 1

0

以下のコードを使用します。それを助けるかもしれません。

var loginController: LoginViewController = LoginViewController(nibName:   
"LoginViewController", bundle: nil)
var vcs: [AnyObject] = 
NSMutableArray.arrayWithArray(self.navigationController.viewControllers)
if vcs.containsObject(loginController) {
   self.navigationController.popToRootViewControllerAnimated(true)
   return
}
vcs.insertObject(loginController, atIndex: vcs.count() - 1)
self.navigationController.setViewControllers(vcs, animated: false)
self.navigationController.popViewControllerAnimated(true)

ビュー コントローラーがナビゲーション スタックに追加されていない場合は、最初にナビゲーション スタックに追加してから、そのビュー コントローラーをポップします。

于 2015-09-10T13:21:39.890 に答える