Доступ к данным в навигационном контроллере

#iphone

#iPhone

Вопрос:

У меня есть controller1, который содержит представление, содержащее множество вложенных представлений (текстовые поля, ….). Я использую навигационный контроллер. Я нажимаю controller1, а в этом контроллере я нажимаю другой controller2.

Моя проблема заключается в доступе к данным controller1, например, я хочу получить доступ к данным текстового поля моего controller1 в controller2.

Как я могу это сделать, пожалуйста???

Спасибо за ваши ответы

Комментарии:

1. конечно, возможно, но лучше использовать модель данных, обновленную этими представлениями, и получить доступ к модели из обоих этих представлений.

Ответ №1:

Поскольку вы используете навигационный контроллер, у вас будет доступ ко всем, viewcontrollers которые вы нажали на навигационный стек. Вы можете восстановить любой из них, используя следующий код.

 [[self.navigationController viewControllers] objectAtIndex:<Here you need to take care of the correct index of your desired viewcontroller>]; 
  

/приведенный выше код вернет viewcontroller с этим индексом.

чтобы узнать правильный индекс, используйте

 NSLog(@"View Controllers : n%@n",[self.navigationController viewControllers]];
  

Спасибо,

Ответ №2:

Под controller1 и controller2 я предполагаю, что вы имеете в виду UIViewController. Если это то, что вы имеете в виду, просто создайте IBOutlets объектов, к которым вы хотите получить доступ, в первом UIViewController. Затем #import первый UIViewController в вашем втором UIViewController, а затем вы можете получить доступ к IBOutlets оттуда.

В следующий раз, пожалуйста, выполните поиск, поскольку это довольно распространенный вопрос, на который много раз давали ответы по всему Интернету.

Комментарии:

1. спасибо за ваш ответ. но это не то, чего я хочу. Да, я знаю, как использовать свойства, но я хочу получить доступ к определенному viewcintroller в стеке контроллера навигации, и я не знаю, как это сделать

2. Если вы знаете, к какому контроллеру просмотра вы хотите получить доступ до выполнения, вы можете использовать мой метод. Если вы не знаете, какой контроллер просмотра, используйте метод Равина.