2016-07-26 48 views
2

有没有什么办法在iOS Swift Project中获取所有UIViewControllers。我想获取所有UIViewControllers的数组,并检查特定的UIViewController是否存在。我只需要找到特定的UIViewController是否存在于项目中。在iOS中获取UIViewControllers的所有列表Swift

+0

你是使用UINavigationController还是仅仅呈现你的UIViewControllers? –

+0

你可以通过创建它们的一个实例来检查它们是否存在,但是不能获取所有的实例,除非你给每个实例标识符并将其存储在枚举或数组的某个地方 – Tj3n

回答

4

您可以使用下面的代码。

let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate 

if let viewControllers = appDelegate.window?.rootViewController?.presentedViewController 
{ 
    // Array of all viewcontroller even after presented 
} 
else if let viewControllers = appDelegate.window?.rootViewController?.childViewControllers 
{ 
    // Array of all viewcontroller after push        
} 
+0

Hi Hasya,第一个代码没有用。第二个部分是有用的,但它不提供给我整个uiviewcontroller数组。它只是向我提供我们通过RootViewController传递的视图控制器。 意思是,如果我的项目有50个视图控制器,并且如果我将在第一个视图上检查您的代码,那么它将只显示第一个视图控制器作为数组。我想你明白我想说什么。我想获得整个UIViewController数组。 –

+1

希望你的项目结构很好。其他部分只有在您有导航控制器和推/视图时才能工作。你将无法获得整个阵列,直到你通过UIViewcontrollers旅行。 – Hasya

+0

是的,谢谢。主要问题是一样的。好吧,让我搜索更多,并感谢很多:) –