2016-07-26 4 views
2

Есть ли способ получить все UIViewControllers в iOS Swift Project. Я хочу получить массив всех UIViewControllers и проверить, существует ли конкретный UIViewController или нет. Мне нужно просто найти, что конкретный UIViewController существует или нет в проекте.Получить весь список UIViewControllers в iOS 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

Привет Хася. Первый код не является полезным. Вторая часть полезна, но она не предоставляет мне весь массив uiviewcontroller. Это просто дает мне контроллеры представлений, которые мы проходим через RootViewController. Значит, если у моего проекта 50 контроллеров представлений, и если я проверю ваш код на первом представлении, тогда он отобразит только первый контроллер представления в виде массива. Я думаю, вы понимаете, что я хочу сказать. Я хочу получить весь массив UIViewController. –

+1

Надеюсь, вы проектная структура хорошо. Else будет работать только в том случае, если у вас есть контроллер навигации и режим push/pop. Вы не сможете получить весь массив до тех пор, пока не поедете на UIViewcontrollers. – Hasya

+0

Да, спасибо. Основной вопрос такой же. Хорошо, позвольте мне найти больше и спасибо большое :) –

Смежные вопросы