首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >尝试在iOS中处理“后退”导航按钮操作

尝试在iOS中处理“后退”导航按钮操作
EN

Stack Overflow用户
提问于 2013-09-16 17:06:33
回答 7查看 122.3K关注 0票数 76

我需要检测用户何时点击导航栏上的"back“按钮,以便在发生这种情况时执行一些操作。我正在尝试手动为这样的按钮设置一个操作,这样:

代码语言:javascript
复制
[self.navigationItem.backBarButtonItem setAction:@selector(performBackNavigation:)];

- (void)performBackNavigation:(id)sender
{
   // Do operations

   [self.navigationController popViewControllerAnimated:NO];
}

我首先将该代码放在视图控制器本身中,但我发现self.navigationItem.backBarButtonItem似乎是nil,所以我将相同的代码移到了父视图控制器中,这会将前者推入导航堆栈。但我都不能让它工作。我读过一些关于这个问题的帖子,其中一些说选择器需要在父视图控制器上设置,但对我来说它无论如何都不起作用……我能做错什么呢?

谢谢

EN

回答 7

Stack Overflow用户

发布于 2014-12-16 20:59:38

斯威夫特

代码语言:javascript
复制
override func didMoveToParentViewController(parent: UIViewController?) {
    if parent == nil {
        //"Back pressed"
    }
}
票数 41
EN

Stack Overflow用户

发布于 2015-07-15 00:54:39

这是dadachi's答案的Objective-C版本:

Objective-C

代码语言:javascript
复制
- (void)didMoveToParentViewController:(UIViewController *)parent{
    if (parent == NULL) {
        NSLog(@"Back Pressed");
    }
}
票数 6
EN

Stack Overflow用户

发布于 2014-07-24 14:28:37

设置UINavigationBar的委托,然后使用:

代码语言:javascript
复制
- (BOOL)navigationBar:(UINavigationBar *)navigationBar shouldPopItem:(UINavigationItem *)item {
    //handle the action here
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18824186

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档