2012-06-01 2 views
2

Я использую раскадровку, и я в основном имею это: enter image description hereРегистрация для UINavigationController делегата

Это MAPview, который представляет модально в UINavigationController с подклассом UIViewController как его contentViewController (Location). Затем этот LocationViewController подталкивает другой viewController на основе выбора таблицы (EditLocation).

В EditLocation, я хочу передать информацию, когда вызывается popViewController. Я думал, что могу использовать UINavigationControllerDelegate для этого. Так Откуда, я стараюсь:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 
    if ([[segue identifier] isEqualToString:@"ShowEditLocation"]) { 
     UIViewController *destination = segue.destinationViewController; 


     if ([destination respondsToSelector:@selector(setDelegate:)]) { 
      [destination setValue:self forKey:@"delegate"]; 
     } 
    } 
} 

Этот класс Расположение соответствует протоколу UINavigationControllerDelegate. Однако я никогда не получаю обратные вызовы willShowViewController или didShowViewController из протокола UINavigationController. Мысли? Благодаря!

ответ

0

Метод prepareForSegue вызывается всякий раз, когда происходит segue. Я попытался получить доступ к navigationController в viewDidLoad из MapViewController (означает, что viewController загружается, когда выбрана любая ячейка в tableview), и я получил правильное описание для этого следующим образом ,

NSLog(@"desc: %@", [[self navigationController] description]); 

2012-06-01 12:01:09.986 Sample_Storyboard[1126:207] desc:<UINavigationController: 0x68378e0> 
Смежные вопросы