2016-12-14 15 views

答えて

1

UINavigationControllerには、現在スタック上にあるビューコントローラの配列を含むviewControllersというプロパティがあります。あなたは、ビューコントローラの配列を取得し、その配列から最後からビューコントローラを取得できます。

guard let navController = self.navigationController else { 
    print("We are not part of a navigation stack!") 
    return 
} 
let stack = navController.viewControllers 
let stackCount = stackCount 
if stackCount > 1 { 
    let nextVC = viewControllers[stackCount - 2] 
    //nextVC now contains the view controller one down from the current VC 
} else { 
    //We are the root view controller 
} 
+0

ああ、それワーキング、感謝です。これは、willmovetoparentを呼び出して、viewcontrollers配列にアクセスすることによっても行うことができると考えました。 –

+0

ナビゲーションコントローラとその子供の親子関係が文書化されているとは思えないので、私はそれを信じていません。実装の詳細は、将来のOSリリースで変更される可能性があり、コードを壊す可能性があります。 –

+0

私はあなたのソリューションを実装し、それを自分のコードスニペットに追加しました。ありがとう! –

関連する問題