2

У меня есть UIButton, который я создаю в моем подклассе ViewController, и добавьте его в свой MainViewController.Push view to navigation controller от кнопки в другом классе

Теперь я добавил целевой метод к этой кнопке, который должен нажать другой контроллер вида на мой контроллер навигации (тот, который находится в MainViewController).

Я знаю, что метод вызывал, когда я нажимаю кнопку, но вид не был нажат на контроллер навигации.

Я просмотрел этот рисунок - это рисунок (я также добавил часть моего кода):

question Drawing

Это код, я использую в моей кнопки: (помните, что в отклоненный ViewController).

- (void)buttonPressed:(UIButton *)sender 
{ 
    Photo_ScreenGlobalView *photo = [[Photo_ScreenGlobalView alloc] init]; 
    [self.navigationController pushViewController:photo animated:YES]; 
} 
+0

Пожалуйста, проверьте вид выхода установлен на контроллере – iNeal

ответ

2

Обычно я решаю эти ситуации с делегацией. Если есть контроллер представления, который подчинен другому (то есть контроллер «под»), но должен иметь возможность запускать навигационные изменения и т. Д., Тогда он должен иметь слабый указатель обратно к нему «родительский». Затем родительский VC должен реализовать соответствующий протокол с обратным вызовом для использования ребенком. Названия этих вещей могут быть общими, например, @property navigationDelegate и requestNavigationToViewController: или они могут быть более семантическими, такими как @property userFormDelegate и userFormDoneButtonPressed:

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

+0

Спасибо за ответ - но вы можете, пожалуйста, дайте мне посмотреть, как сделать это с примерами кода? я не понял этого до конца .. –

+0

если кому-то это нужно - вы можете увидеть руководство в ответе ниже. –

-3

Я вернулся, чтобы вы знали, как я на самом деле это сделал. после поиска в Интернете много нашел это красивое и быстрое руководство, как сделать DELEGATE и работа с делегатом решили все мои проблемы. если вам нужна помощь, не стесняйтесь присылать мне PM.

это руководство: http://css.dzone.com/articles/do-not-publishcreating-your

+0

Это мое опубликованное решение от 7 дней назад. –

+0

ну, спасибо. но это было не так ясно, и это руководство объясняет это лучше. –

Смежные вопросы