1

UINavigationController?

例如,假设我想确保UINavigationController用户按下后退按钮时没有动画。

4

2 回答 2

4

如果您不打算拦截后退按钮点击本身,而是当前视图控制器的行为消失,您可以使用:

- (void)viewWillDisappear:(BOOL)animated {
    if (self.isMovingFromParentViewController) {
        // handle back button press
    }
}

如果您确定要执行后退按钮,则可以创建自己的自定义UIBarButtonItem并将其设置为当前控制器的leftBarButtonItem. 请务必[self.navigationController popViewControllerAnimated:YES]在完成自己的逻辑后调用。

于 2013-05-13T02:27:21.823 回答
0

在应用程序的 ViewDidLoad 中添加以下代码:

    UIButton *btnBack = [UIButton buttonWithType:UIButtonTypeCustom];
    [btnBack setFrame:CGRectMake(0.0f, 0.0f, 55.0f, 35.0f)];
    [btnBack addTarget:self action:@selector(backClicked:) forControlEvents:UIControlEventTouchUpInside];
    [btnBack setImage:[UIImage imageNamed:@"back.png"] forState:UIControlStateNormal];

    UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithCustomView:btnBack];

    self.navigationItem.leftBarButtonItem = backButton;

这将创建一个自定义后退按钮。“Back.png”是与OS相同的图像。

添加以下代码作为函数。这个弹出到 RootViewcontroller。

- (void) backClicked:(id)sender {

// perform certain task
// If task is completed then call below LOC

[self.navigationController popToRootViewControllerAnimated:YES]; }

在此处输入图像描述

于 2014-02-05T13:56:56.123 回答