Как вызвать методы в контроллере представления при нажатии кнопки в родительском контроллере представления?

У меня есть приложение для iPhone с tabBarController в качестве корневого контроллера представления в mainwindow.xib.

Одна из вкладок имеет класс UINavigationController, и его представление загружается из внешнего файла Nib, который в настоящее время называется secondView.xib.

Как я могу получить UIBarButtonItem, который находится в NavigationController в файле mainwindow.xib, для запуска методов в его дочернем представлении, контроллере представления secondView.h / m?


person conorgriffin    schedule 07.02.2010    source источник


Ответы (3)


Я думаю, вам нужно получить доступ к делегату приложения (приложение secondView del) в MainWindow, а затем вызвать методы для этого. Э-э, отправь сообщения этому объекту.

person mr-sk    schedule 08.02.2010

Полностью переделал ответ, так как неправильно понял ваш вопрос.

В методе viewDidLoad UIViewController добавьте:

UIBarButtonItem *myButton = [[UIBarButtonItem alloc] init]; // do some initialization here
self.navigationItem.leftBarButtonItem = myButton;
[myButton release];

Назначенный инициализатор для UIBarButtonItem позволяет вам установить метод, вызываемый при нажатии.

person kubi    schedule 08.02.2010
comment
@kubi Я хочу наоборот. В моем tabBarController есть вкладка с классом контроллера навигации. Я хочу нажать кнопку в верхнем левом углу контроллера навигации, которая запускает метод в контроллере дочернего представления. - person conorgriffin; 08.02.2010

Фактически, все, что мне нужно было сделать, это дважды щелкнуть подпредставление в контроллере навигации, чтобы он имел фокус, затем перетащить его ctl на кнопку, которую я разместил на панели, и я мог выбрать метод из раскрывающегося списка. Извиняюсь, если я потратил впустую время, в любом случае спасибо за помощь. Оба помогли мне внимательнее присмотреться к тому, что я делаю.

person conorgriffin    schedule 08.02.2010