утилита для iPhone, подключение от FLipSideView к MainView - PullRequest
0 голосов
/ 03 апреля 2011

Я пытаюсь научиться программировать на Objective-C и iPhone, но у меня возникла проблема.У меня есть служебное приложение, и у меня есть текст в моем MainView и кнопка, которая изменяет текст, когда я нажимаю на него.Легко и отлично работает.Но что, если я не хочу размещать кнопку на «тыльной стороне» в FlipSideView и все же заставить ее изменить текст на передней панели (MainView)?Как мне получить мнение, чтобы поговорить вместе?Я пробовал много разных вещей и искал ответ, но, похоже, не могу понять это.

Было бы замечательно, если бы у кого-то был ответ, или, возможно, ссылка на учебник / пример.

1 Ответ

1 голос
/ 03 апреля 2011

Полагаю, вы использовали шаблон, который реализует следующий метод в MainViewController:

- (IBAction)showInfo:(id)sender {    

    FlipsideViewController *controller = [[FlipsideViewController alloc] initWithNibName:@"FlipsideView" bundle:nil];
    controller.delegate = self;
...
}

Как вы можете видеть, он устанавливает делегат FlipSideController для экземпляра MainViewController.

Можно было бы применить действие к вашему FlipSideViewController, примерно так:

- (IBAction)changeTextInMainView
{
    [(MainViewController *)self.delegate changeText];
}

, который срабатывает при касании кнопки на задней стороне. Вы должны подключить его в IB, а также добавить метод в заголовок.

Затем реализуйте что-то подобное в вашем MainViewController

- (void)changeText
{
    self.myLabel.text = @"text changed to this";
}

Добавьте и этот метод в заголовок.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...