2016-05-10 3 views
1

Я действительно новичок в Objective C, и у меня есть приложение с раскадрой с помощью ViewController с классом MyViewController. У меня тогда есть CDVPlugin (для моего приложения cordova). Из одного из методов моего приложения cordova я хочу иметь возможность ссылаться на Active ViewController и вызывать одну из функций из него. Я импортировал заголовок MyViewController.h, и я думал, может быть, есть способ сделать делегат для другого, но я чувствую, что это неправильный способ приблизиться к этому?iOS - контрольный активный контроллер раскадровки из внешнего класса

Любые идеи?

+0

в MyViewController.h, вы можете объявить функцию, сделать его реализацию в .m файл и в активном классе вид контроллера «MyViewCOntroller инициализировать», использовать свой объект для доступа к функции. –

+0

Вы имеете в виду, например, 'MyViewController * myViewController = [[MyViewController alloc] init]', а затем '[myViewController function]' это применимо, если я хочу использовать его для перехода в другой ViewController? Мне все равно не комфортно с объективным C, и мне кажется, что это создаст ненужный контроллер представлений ... или я смотрю на это неправильно? – AlecGamble

+0

Мне также нужно обратиться к конкретному, потому что я хочу использовать performSegueWithIdentifier. – AlecGamble

ответ

1

Вы можете получить текущий контроллер представления корня для приложения с помощью:

[UIApplication sharedApplication].delegate.window.rootViewController 

Корневой контроллер представления может быть активным контроллером вид, или это может быть контроллер навигации, в этом случае вы можете захотеть что-то как:

UIViewController *active = ((UINavigationController *)[UIApplication sharedApplication].delegate.window.rootViewController).visibleViewController 
if [active isKindOfClass: [MyViewController class]] { 
    MyViewController *myViewController = (MyViewController *)active 
    // Call any methods you need to on myViewController 
} 
+0

Огромное вам спасибо, есть ли способ, который я могу подтвердить, что это viewcontroller определенного типа i.e 'MyViewController'? – AlecGamble

+0

@AlecGamble Конечно, я обновил ответ на примере этого –

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