UINavigationController后退按钮动作问题

时间:2011-09-24 16:04:47

标签: iphone uinavigationcontroller uitableview

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

我不知道我刚才所说的是否可以理解,这里也是后退按钮的代码及其动作:

- (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它可以追溯到前...

1 个答案:

答案 0 :(得分:2)

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

如果要按两次第二个视图控制器,请检查代码。