2014-11-28 2 views
0

Я хочу вызвать метод popToRootViewController из класса, который не распространяется UIViewController, но я не могу получить ссылку для navigationController. Есть ли способ сделать это? ускоряющее решение с внедрением делегата до viewController, реализующего этот метод.получить ссылку UINavigationBar из класса NSObject

Например, мне нужен мой класс с именем MyClass : NSObject для звонка popToRootViewController. Является ли это возможным?

+0

Что вы имеете в виду класс NSObject? Является ли это подклассом NSObject? –

+0

, если вы знаете, где находится ваш 'UINavigationController' в иерархии вида, вы можете жестко установить его везде, на основе свойства' rootViewController' экземпляра 'UIWindow', но это было бы плохой способ будущее поддержание. – holex

+0

Я имею в виду это @interface MyClass: NSObject – AleksandarNS

ответ

1

Чтобы получить доступ к навигации контроллера, вы можете сделать что-то вроде:

UINavigationController* navController = (UINavigationController *)[[[UIApplication sharedApplication] delegate] window].rootViewController; 

И тогда вы можете позвонить

[navController popToRootViewControllerAnimated:YES]; 
+0

Это тот ответ, который я искал. Работает отлично. – AleksandarNS

+0

Есть ли способ, которым я могу получить раскадровку из того же класса? – AleksandarNS

+0

Вы можете получить доступ к своей раскадровке повсюду, позвонив по телефону UIStoryboard * myStoryboard = [UIStoryboard storyboardWithName: @ «MyStoryboard» bundle: nil]; –

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