我在ViewController2中有一个backbarButtonItem,当屏幕返回到它的父视图控制器ViewController1时,我想问用户他是否准备好回去。如果他还没准备好,我想给他一个选择留在ViewController。所以问一些问题 - “你准备离开这个屏幕了吗? - 是或否”
我知道backbarButtonItem无法调用Apple doc中定义的'action'。你有什么好的解决方案吗?
答案 0 :(得分:2)
我会将自己的自定义leftBarButtonItem添加到导航项,并添加您想要的任何操作方法。它不会像标准后退按钮那样具有相同的外观,但我认为这是一件好事 - 用户希望标准按钮具有标准行为。使用常规矩形按钮将提醒用户正在发生不同的事情。
答案 1 :(得分:2)
在视图didLoad方法中写下这个:
UIImage* myimage = [UIImage imageNamed:@"ButtonImage.png"];
CGRect backFrame = CGRectMake(0, 0, 80, 30);
backButton = [[UIButton alloc] initWithFrame:backFrame];
[backButton setBackgroundImage:myimage forState:UIControlStateNormal];
[backButton addTarget:self action:@selector(MyBtnclicked)
forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *btn = [[UIBarButtonItem alloc]initWithCustomView:backButton];
self.navigationItem.leftBarButtonItem = btn;
然后按如下方式编写ibaction
-(IBAction)MyBtnclicked
{
UIAlertView *av=[[UIAlertView alloc] initWithTitle:nil message:@"Do you really want to Go back" delegate:self cancelButtonTitle:@"No" otherButtonTitles:@"Yes",nil];
[av show];
}
答案 2 :(得分:1)
一种方法是对UINavigationController
对象进行子类化并覆盖popViewController:animated:
方法。然后,您可以根据用户的响应决定是否拨打超级popViewController:animated:
。