pushViewController ничего не делает в приложении с несколькими вкладками? - PullRequest
0 голосов
/ 04 октября 2010

У меня есть оконное приложение для 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 ничего не делает. Я бесполезно искалРешение, есть несколько похожих примеров, но ни один из них не использует делегат приложения или не дает мне никаких результатов. Надеюсь, я упомянул все, что должен иметь, любая помощь / совет будут высоко оценены! С уважением.

1 Ответ

1 голос
/ 05 октября 2010

navController свойство delegate равно нулю.Я бы начал с просмотра кода, который, как предполагается, устанавливает это.

По какой причине вы не используете это?

[self.navigationController pushViewController:forecastViewController animated:YES];
...