#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. Если вы знаете, к какому контроллеру просмотра вы хотите получить доступ до выполнения, вы можете использовать мой метод. Если вы не знаете, какой контроллер просмотра, используйте метод Равина.