使用后退按钮展开 segue 时执行代码
Posted
技术标签:
【中文标题】使用后退按钮展开 segue 时执行代码【英文标题】:Perform code when unwind segue with back button 【发布时间】:2015-02-16 01:17:19 【问题描述】:我想在 segue 后退一步时执行一些代码。 For example, when the back button gets selected, I want to perform some code.
我无法从后退按钮创建新的展开动作,因为情节提要中没有后退按钮。有没有办法在选择后退按钮后插入代码?
【问题讨论】:
如果您只能从该特定视图返回,则可以使用viewWillDisappear
(否则在视图层次结构中返回和前进时会调用它)。
我不能那样做,因为我也要往前走。
【参考方案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,我不知道为什么找不到,只要你导入它,并且拼写正确。以上是关于使用后退按钮展开 segue 时执行代码的主要内容,如果未能解决你的问题,请参考以下文章