我有一个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它可以追溯到前...
答案 0 :(得分:2)
您有机会推送第二个视图控制器两次。当您同时推送多个视图控制器实例时,您将看不到推动动画的任何差异。它看起来只有一个控制器被推动。这是因为在完全按下上一个视图控制器之前推动下一个视图控制器。
如果要按两次第二个视图控制器,请检查代码。