繁体   English   中英

iOS:在视图中调用委托方法以使该视图成为模态

[英]iOS: Call delegate method in view to make that view modal

我有一个具有两个视图A和B的TabBar消息传递应用程序。在视图A中,我声明了一个类型为委托的对象,该对象在视图B中具有一个委托方法。现在,无论何时在视图A中发生任何事情,委托对象中的方法都会调用,然后触发视图B中的委托方法。 每当发生这种“事情”时,我想发生的事情是,如果视图A可见,我希望标签栏将视图切换到视图B。如果视图B可见,则该视图什么都不会发生。 我如何做到这一点?

实际的应用程序比上述应用程序更为复杂,因为TabBar及其所有相关视图位于另一个加载到appdelegate中的视图控制器中。 (我是这个应用程序的贡献者,并且原始开发人员以他们无穷的智慧决定使事情真正变得晦涩难懂。)而且我不想实现使用类似于...的东西的解决方案。

[self.tabBarController setSelectedIndex:1]

...因为那不是我想要的事情。 我只想在调用视图A中的委托时使B中的视图可见。 谢谢。

我编辑了我的文章:此行[self.tabBarController setSelectedIndex:1]及其上方和下方的子句组成一行。 我用省略号来强调。

如果只想确定哪个视图可见,则可以使用-isDesendentOfView:方法:

  if([viewA isDescendentOfView:someView]) {
      //viewA is visible as a subview to `someView`
 }

编辑:阅读完您的问题后。 我认为您想将sender参数sender到您的委托方法中,以确定它来自..i,e:

如果您的委托方法是这样定义的:

-(void)someMethod:(id)sender;

在您的代表中,您将执行以下操作:

-(void)someMethod:(id)sender {

    UIView *aView = (UIView*)sender;

        if(aView == viewA) {

       }

        if(aView == viewB) {

       }
}  

希望这会有所帮助,或者至少会让您走上解决之路!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM