2011-09-24 221 views
1

我有一个UINavigationController,第一个视图是UIView。我设置了两个按钮,每个按钮都会推入另一个视图,都是UITableViewControllers。 第一个按钮工作得很好。问题是:当我在第二个TableViewController中,然后点击后退按钮时,它会尝试再次推送视图,并且仅在第二次时才返回到主视图。 我也有一个UITabBarController设置,我注意到如果我在我的第一个选项卡(主视图与两个按钮推动两个tableviews,精确地在第二个视图),我点击另一个选项卡上,然后点击第一 - 它向我展示了我的第一个UITableViewController的内容,当我点击它时显示第二个UITableViewController(应该显示),并且只有第二次点击它才能进入主视图。UINavigationController后退按钮操作问题

我不知道这是可以理解我刚才说的,这里也是后退按钮的代码和它的操作:

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    UIButton *back= [UIButton buttonWithType:UIButtonTypeCustom]; 
    UIImage *backImage = [[UIImage imageNamed:@"backb.png"] 
          stretchableImageWithLeftCapWidth:10 topCapHeight:10]; 
    [back setBackgroundImage:backImage forState:UIControlStateNormal]; 
    [back addTarget:self action:@selector(cancel:) 
    forControlEvents:UIControlEventTouchUpInside]; 
    back.frame = CGRectMake(0, 0, 37, 26); 
    UIBarButtonItem *cancelButton = [[[UIBarButtonItem alloc] 
             initWithCustomView:back] autorelease]; 
    self.navigationItem.leftBarButtonItem = cancelButton; 
} 


-(IBAction)cancel:(id)sender{ 
    [self.navigationController popViewControllerAnimated:YES]; 
} 

第一的UITableViewController后退按钮是设置相同并且工作得很好......可能是什么问题?

我刚刚添加了另一个UITableViewController,显然现在当我在第三个视图中,并且我尝试返回到主视图时,它在加载视图两次之前以及第一个UITableViewController返回之前...

回答

2

有机会,你有推动第二个视图控制器两次。当您同时推送视图控制器的多个实例时,您在推动动画中看不到任何区别。它看起来像只有一个控制器被推动。这是因为你在前一个视图控制器被完全推入之前推动下一个视图控制器。

检查你的代码,如果你推动第二个视图控制器两次。

+0

你是对的我刚才看到我对最后两个按钮有多个操作,谢谢一堆:) – ftwhere

+0

不客气! :-) – EmptyStack