Нажатие контроллера вида из внутреннего контроллера вида - PullRequest
1 голос
/ 16 января 2012

Как объяснено в этого вопроса , у меня есть контроллер представления, который должен заменить себя другим макетом в некоторых случаях, когда данные могут отсутствовать. Это похоже на работу:

if ([analysis length] == 0) {
    hasReview = NO;
    UnreviewedSPP* unreviewedSPPView = [[UnreviewedSPP alloc] init];
    unreviewedSPPView.ProductName = self.productName;
    unreviewedSPPView.SdcId = self.sdcId;
    unreviewedSPPView.Delegate = self;
    NSArray* newViews = [[NSBundle mainBundle] loadNibNamed:@"UnreviewedSPP" owner:unreviewedSPPView options:nil];
    self.view = [newViews objectAtIndex:0];
    return;
}

Однако, похоже, что я не могу выдвинуть новый контроллер представления из представления замены:

    [priceButton handleControlEvent:UIControlEventTouchUpInside withBlock:^{
        WebViewController* wv = [[[WebViewController alloc] initWithNibName:@"WebViewController" bundle:nil] autorelease];
        wv.url = offerURL;
        [Delegate performSelector:@selector(pushViewControllerFromSubview:) withObject:wv];
    }];

priceButton - это объект пользовательской кнопки, который может выполнять блок как целевое действие.

Я пробовал несколько подходов: передача внешнего контроллера вида в качестве делегата и передача контроллера навигации внешнего контроллера вида в качестве свойства на внутреннем контроллере представления.

Кажется, ничего не работает. Есть ли лучшее решение?

Ответы [ 2 ]

1 голос
/ 16 января 2012

Вопрос:

1) Сохраняется ли wv ... когда вы вызываете pushViewControllerFromSubview? Я заметил, что у вас есть сделка с автопродажей. Проверьте представление wv в pushViewControllerFromSubview.

2) Другим подходом для замены представлений является использование «[self.view addSubView: myView];» и [myView removeFromSuperView]; '... это может быть лучшим подходом, чем нажатие контроллера представления.

Приветствия

0 голосов
/ 17 января 2012

Основной причиной было то, что мой "внешний вид" был на самом деле подпредставлением, поэтому я не мог получить доступ к его навигационному контроллеру напрямую. Я забыл об этом.

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