У меня есть оконное приложение для iPhone с несколькими вкладками и контроллером панели навигации, который появляется на всех этих вкладках.Это приложение о погоде / климате, поэтому я хочу, чтобы пользователь сначала выбрал город, а затем получил информацию о погоде на каждой вкладке для этого города (они могут вернуться в город, выбрать из любой вкладки с помощью панели навигации. Я следовал за этимруководство: http://www.youtube.com/watch?v=LBnPfAtswgw, но добавлено больше вкладок с теми же настройками. Поэтому я получаю текущую вкладку и создаю экземпляр делегата приложения следующим образом:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSUInteger currTab;
AppDelegate_iPhone *delegate = [[UIApplication sharedApplication] delegate];
currTab = delegate.rootTabController.selectedIndex;
...
Это работает нормально, возвращает правильную выбранную вкладку при вызовев viewDidAppear. Тогда мой код для отправки в соответствующее представление (в данном случае, UIForecastViewController) примерно так:
if (currTab == 0) {
if (self.forecastViewController == nil) {
UIForecastViewController *chosenCity = [[UIForecastViewController alloc] initWithNibName:@"UIForecastViewController" bundle:nil];
// note forecastViewController is a variable, not the class
self.forecastViewController = chosenCity;
[chosenCity release];
}
forecastViewController.title = [NSString stringWithFormat:@"%@ Forecast",[cityArray objectAtIndex:row]];
[delegate.navController pushViewController:forecastViewController animated:YES];
}
Все остальное работает так, как должно, но pushViewController ничего не делает. Я бесполезно искалРешение, есть несколько похожих примеров, но ни один из них не использует делегат приложения или не дает мне никаких результатов. Надеюсь, я упомянул все, что должен иметь, любая помощь / совет будут высоко оценены! С уважением.