您可以使用一些UIViewController
屬性來確定視圖控制器在視圖控制器層次結構中的位置。這兩個特別是splitViewController
和navigationController
。
splitViewController
返回視圖控制器層次最近UISplitViewController
祖先。如果沒有,該物業是nil
。
navigationController
基本上是同樣的事情splitViewController
。它返回視圖控制器層次最近UINavigationController
祖先是nil
如果沒有,則存在。
這裏是你將如何確定的3個場景視圖控制器(假定沒有其他場景):
if let splitVC = viewController.splitViewController {
// split view controller scenario
} else if let navigationVC = viewController.navigationController {
if navigationVC.viewControllers[0] == viewController {
// first controller scenario (no back button)
} else if navigationVC.topViewController == viewController {
// top controller scenario (back button)
}
}
如果我正確理解你的問題。我想你每次都需要檢查。你是否試圖問是否有更好的邏輯來處理? –