0

我在 ViewController2 中有一个 backbarButtonItem,当屏幕返回其父视图控制器 ViewController1 时,我想询问用户是否准备好返回。如果他还没有准备好,我想给他一个留在 ViewController 中的选项。所以问类似 - “你准备好离开这个屏幕了吗? - 是或否”

我知道 backbarButtonItem 不能调用 Apple 文档中定义的“动作”。你有什么好的解决办法吗?

4

3 回答 3

2

我会将您自己的自定义 leftBarButtonItem 添加到导航项,并添加您想要的任何操作方法。它的外观与标准后退按钮不同,但我认为这是一件好事——用户希望标准按钮具有标准行为。使用常规的矩形按钮会提醒用户正在发生不同的事情。

于 2013-04-03T03:59:56.840 回答
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];
}
于 2013-04-03T05:26:38.393 回答
1

一种方法是对UINavigationController对象进行子类化并覆盖该popViewController:animated:方法。然后,您可以根据用户的响应来决定是否调用 super 的popViewController:animated:

于 2013-04-03T03:55:50.040 回答