pushViewController在多选项卡应用程序中什么都不做?

时间:2010-10-04 14:36:02

标签: iphone objective-c cocoa-touch uitabbarcontroller pushviewcontroller

我有一个基于窗口的iPhone应用程序,其中包含多个选项卡和一个导航栏控制器,它出现在所有这些选项卡上。这是一个天气/气候应用程序,所以我希望用户首先选择一个城市,然后在该城市的每个标签中显示天气信息(他们可以使用导航栏从任何标签返回城市。我跟着这个指南:http://www.youtube.com/watch?v=LBnPfAtswgw但添加了更多具有相同设置的标签。 所以我得到了当前的标签,并像这样实例化了app委托:

- (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 个答案:

答案 0 :(得分:1)

navController的{​​{1}}属性为零。我将从查看应该设置此代码的代码开始。

你有什么理由不使用它吗?

delegate