返回执行的转场的正确方法是啥?
Posted
技术标签:
【中文标题】返回执行的转场的正确方法是啥?【英文标题】:What is the right way to go back a performed segue?返回执行的转场的正确方法是什么? 【发布时间】:2017-02-18 09:04:44 【问题描述】:基本上,我有一个视图控制器,它使用[self performSegueWithIdentifier: sender:];
推送到下一个视图控制器,在prepareForSegue
中,我想将 VC 的标题更改为“Back”,以便在下一个 VC 中,后退栏按钮项将是“返回”而不是最初的 VC 的标题。
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
self.title = @"Back";
现在的问题是,当我通过点击返回按钮返回到第一个 VC 时,我必须将标题改回初始标题,否则标题将保持为“返回”。
如果有像prepareForSegue
这样的方法,我可以得到目标 VC 并更改它的标题...
另一个例子是我有一个包含 3 个视图控制器的故事板,如下所示:
我隐藏了导航控制器以使用我自己的按钮返回转场。虽然这种方式可行,但我必须再添加 2 个 segue 才能返回到第一个 VC,这似乎很奇怪......
【问题讨论】:
【参考方案1】:在您的故事板中,将 导航项 拖到您的第一个视图控制器上。将 Title 设置为视图控制器的标题,将 Back Button 设置为“Back”
或者,要以编程方式执行此操作,请创建一个具有 nil 操作和目标的 UIBarButtonItem
,并分配给 navigationItem.backBarButtonItem
(确保您在您即将到来的视图控制器中执行此操作来自)
【讨论】:
太棒了!我在***上搜索并尝试了诸如“在viewDidLoad
等中执行此操作”之类的答案。我不敢相信它就这么简单。然而,一个问题是,当点击返回按钮时,有没有一种方法可以让我执行一项操作(比如提醒“你确定要返回吗?”)?
很遗憾,无法拦截后退按钮。最接近的方法是将自定义 leftBarButtonItem
添加到子视图控制器,连接到 IBAction
,然后从那里显示警报
是的,你是对的。在这里看到了这个问题,而是做了按钮实现。无论如何,非常感谢! ***.com/questions/18824186/…【参考方案2】:
在方法prepareForSegue:
中,可以通过segue.destinationViewController
得到destinationViewController
。我想这就是你想要的。
【讨论】:
不,它不起作用。没有 segue 指示回到以前的 VC。我尝试使用相同的 segue(向前导航的那个),当我点击背面时,它并没有触发我的动作。if ([segue.identifier isEqualToString:@"oneMinChallenge"]) //action
以上是关于返回执行的转场的正确方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章
验证对象是不是存在于 django 视图中而不返回 404 的正确方法是啥?