【问题标题】:Perform code when unwind segue with back button使用后退按钮展开 segue 时执行代码
【发布时间】:2015-02-16 01:17:19
【问题描述】:

我想在 segue 后退一步时执行一些代码。 For example, when the back button gets selected, I want to perform some code.

我无法从后退按钮创建新的展开动作,因为情节提要中没有后退按钮。有没有办法在选择后退按钮后插入代码?

【问题讨论】:

  • 如果您只能从该特定视图返回,则可以使用viewWillDisappear(否则在视图层次结构中返回和前进时会调用它)。
  • 我不能那样做,因为我也要往前走。

标签: ios objective-c segue unwind-segue


【解决方案1】:

如果您想坚持使用默认的后退按钮,一种方法是子类化导航控制器,并覆盖 popViewControllerAnimated: 当您点击后退按钮时调用。

-(UIViewController *)popViewControllerAnimated:(BOOL)animated {
    UIViewController *vcToBePopped =[super popViewControllerAnimated:animated];
    id vc = self.viewControllers.lastObject; // this will be the controller you're going back to
    if ([vc isKindOfClass:IntendedViewController class]) { // replace IntendedViewController with the actual class name you care about
        [(IntendedViewController *)vc someMethod];
    }

    return vcToBePopped;
}

【讨论】:

  • 我不认为有一种方法叫做popViewController。如果你想说我应该添加一个新的,应该在哪里调用它?
  • @MikeRally,我不是说有一个叫popViewController的方法,我说的是popViewControllerAnimated:,还有这么一个方法。你看过 UINavigationController 类参考吗?
  • Xcodes 智能检查器没有捡起它。我检查了文档,正如你所说,它确实有。所以我不确定发生了什么?
  • 哦。我没有子类化导航控制器。但是当我在intendedViewController 尝试我的课程时,它没有接听课程? (我确实导入了它)
  • @MikeRally,我不知道为什么找不到,只要你导入它,并且拼写正确。
猜你喜欢
  • 1970-01-01
  • 2012-07-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-04
  • 1970-01-01
  • 2015-05-28
  • 2015-09-28
相关资源
最近更新 更多