导航控制器两次推动我的视图?

时间:2010-07-20 20:35:33

标签: iphone objective-c cocoa-touch uinavigationcontroller uitableview

我有一个UITableViewController在点击一个单元格时推送一些视图:

switch(indexPath.row) {
                case kFollowerSectionUpdatesCountRow:                   
                    stockTwitsView.reloadUpdates = TRUE;
                    stockTwitsView.showHomeButton = TRUE; //** reversed, true means hide the button
                    stockTwitsView.profileName = self.user_name;
                    stockTwitsView.msgSource = self.message_source;
                    [self.navigationController pushViewController:stockTwitsView animated:YES];
                    break;
                case kFollowerSectionFollowerCountRow:                  
                    followSectionDetailView.username = self.user_name;
                    followSectionDetailView.loadFollowers = TRUE;
                    [self.navigationController pushViewController:followSectionDetailView animated:YES];
                    break;
                case kFollowerSectionFollowingCountRow:                 
                    followSectionDetailView.username = self.user_name;
                    followSectionDetailView.loadFollowing = TRUE;
                    [self.navigationController pushViewController:followSectionDetailView animated:YES];
                    break;
            }

kFollowerSectionUpdatesCountRow外,一切正常。它将推动视图,但如果我单击后退按钮,它会再次加载相同的视图而不是返回?我必须再次点击以返回原始屏幕。任何其他被推送的视图都不会发生这种情况。

不确定原因?

更新: 奇怪的是这部分是我的UITableView的第3部分。如果我将其更改为第二部分,则视图控制器仅被推送一次。为什么呢?

2 个答案:

答案 0 :(得分:2)

你有可能两次推动视图控制器。很难从这段代码片段中看到,但在stockTwitsView视图控制器中查看viewWillAppear调用,看看它出现的次数(以及它们是否是不同的,唯一的对象)。

答案 1 :(得分:0)

当你回去时,你是否有机会调用pushViewController? 如果是这样,请不要这样做。导航回父调用者时无需调用pushViewController。