Ios 找出您来自哪个视图控制器
我试图找出我来自哪个视图控制器。让我解释一下 我有一个viewController(位置viewController)。在viewcontroller A上有3个按钮(网站按钮、地图按钮、费率按钮)。当用户按下Rate按钮时,他们进入Rate viewcontroller。当他们从viewController返回时,我必须在viewController A(Place view controller)上/内部“做一些事情”。当用户按下“网站按钮”或“地图按钮”时,无需执行任何操作 有没有办法检查我刚从哪个viewcontroller来的 有人有什么建议吗Ios 找出您来自哪个视图控制器,ios,iphone,objective-c,uiviewcontroller,Ios,Iphone,Objective C,Uiviewcontroller,我试图找出我来自哪个视图控制器。让我解释一下 我有一个viewController(位置viewController)。在viewcontroller A上有3个按钮(网站按钮、地图按钮、费率按钮)。当用户按下Rate按钮时,他们进入Rate viewcontroller。当他们从viewController返回时,我必须在viewController A(Place view controller)上/内部“做一些事情”。当用户按下“网站按钮”或“地图按钮”时,无需执行任何操作 有没有办法检查
谢谢。你可以通过授权来完成这项工作 您可以定义一个协议,例如,
RateViewControllerDelegate
RateViewController
将具有符合此协议的委托
您的
PlaceViewController
将符合此协议,该协议可能有一种方法,如-rateViewControllerCompletedSomeThing
,RateViewController
可以在完成时发送该方法。在该方法的PlaceViewController
实现中,它可以解除/popRateViewController
,并在解除RateViewController
后执行您想要执行的任何其他操作。如果您打开一个模式视图控制器(presentViewcontroller),您可以使用视图控制器的“parentViewController”属性
如果是导航,则导航控制器在属性“viewController”中具有视图控制器堆栈
在这种情况下,最好使用协议,只需设置一个委托即可。是的。
UIViewController
类声明了一个属性presentingViewController
,该属性根据
如果接收此消息的视图控制器由
另一个视图控制器,此属性保存
他正在展示它。如果未显示视图控制器,但显示其中一个
它的祖先正在被呈现,这个属性持有这个观点
表示最近祖先的控制器。如果双方都不同意这个观点
控制器或其任何祖先均未呈现,此属性
零持有
从UIViewController
子类中使用此属性时,您将希望引用如下属性:
UIViewController *oldVC = self.presentingViewController;
一种简单的方法是将类属性添加到(例如booldicomefromrate)。然后在Rate VC中添加如下代码。然后,可以在加载视图控制器A时检查该属性
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
UIViewController *targetVC = [segue destinationViewController];
targetVC.didComeFromRate = YES;
}
你试过什么吗?那么NSNotification呢?我想他想要的是另一种方式,即当从PresentDVC返回PresentGVC时,PresentGVC想知道它刚刚完成了哪个VC的演示。aa和呼吸。如果将viewcontroller放置在navigationController中,则按此按钮可设置viewcontroller的速率。在这种情况下,self.presentingViewController能工作吗?@Joiningss不能,如果是这种情况,最好按照@Avi Tsadok的建议使用
parentViewController
。@0x7fffffff我写了一个测试演示,self.presentingViewController不能在导航中工作。而self.parentViewController是一种UINavigationController,因此self.parentViewController不能同时工作。Avi Tsadok没有建议在导航中使用parentViewController。@Joinings是正确的,但他确实建议使用它,我想给他适当的信任。