UINavigationController Push Представления - PullRequest
0 голосов
/ 12 декабря 2008

Извините - это может быть простой вопрос, я новичок в разработке для iPhone и все еще думаю о Views против ViewControllers.

У меня есть NavigationViewController, и я могу нажать View, используя следующий метод в RootViewController, который подключен к элементу панели кнопок:

- (IBAction)switch:(id)sender {
        NSLog(@"Swith...");
        LibraryViewController *varLibraryViewController = [[LibraryViewController alloc] initWithNibName:@"LibraryViewController" bundle:nil];
        [[self navigationController] pushViewController:varLibraryViewController animated:YES];
    }

Я хочу вызвать этот же метод с кнопки на том же представлении, которое загружено в данный момент. По сути, я хочу, чтобы панель кнопок в верхней части вызывала тот же метод, что и кнопка в представлении. Мне было интересно, как вызвать метод в ViewController из представления, загруженного из этого viewController. Надеюсь, это имеет смысл.

Нужно ли создавать экземпляр RootViewController? Я бы подумал, что это будет уже осуществлено. Спасибо.

Ответы [ 3 ]

4 голосов
/ 14 декабря 2008

Кстати, код, который вы вставили туда, пропускает ваш LibraryViewController. Вам нужно либо явно освободить его после нажатия, либо автоматически выпустить его при его создании.

1 голос
/ 14 декабря 2008

Ваш RootViewController должен иметь свой собственный файл xib. В этом xib RootViewController представлен объектом с именем «Владелец файла». Вы можете связать кнопки в представлении с владельцем файла так же, как вы можете связать вещи с RootViewController в MainMenu.xib.

1 голос
/ 12 декабря 2008

Вы захотите объявить свой метод как IBAction в вашем заголовочном файле: - (IBAction) myMethod: (id) sender;

Сохраните заголовок, затем переключитесь на Interface Builder. Щелкните правой кнопкой мыши на кнопке панели и перетащите из тега selector на ваш объект контроллера представления (возможно, владельца файла). Когда вы отпустите, вам должно быть предоставлено всплывающее меню с доступными действиями, и myMethod должно быть выбрано.

Если вы не получаете это всплывающее окно, вам может потребоваться убедиться, что ваш класс «Владелец файла» установлен правильно: выберите «Владелец файла» в окне файла, затем выберите «Инструменты»> «Инспектор идентификации» из меню. В инспекторе введите класс вашего контроллера представления в поле Class.

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