在UINavigationController
?
例如,假设我想确保UINavigationController
用户按下后退按钮时没有动画。
在UINavigationController
?
例如,假设我想确保UINavigationController
用户按下后退按钮时没有动画。
如果您不打算拦截后退按钮点击本身,而是当前视图控制器的行为消失,您可以使用:
- (void)viewWillDisappear:(BOOL)animated {
if (self.isMovingFromParentViewController) {
// handle back button press
}
}
如果您确定要执行后退按钮,则可以创建自己的自定义UIBarButtonItem
并将其设置为当前控制器的leftBarButtonItem
. 请务必[self.navigationController popViewControllerAnimated:YES]
在完成自己的逻辑后调用。
在应用程序的 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]; }