我在导航控制器中推了一个视图。例如:view1推送view2,如果我想从view2调用任何view1方法。可能吗。这是一个好习惯。
TIA
答案 0 :(得分:0)
是的,有可能,实际上有几种方法可以做到这一点:
使用delegate
模式,因为NeverBe在评论中建议(尽管您仍需要将引用传递给调用者)
创建时只需将View1
引用传递给View2
,稍后再使用该引用来调用您需要的方法。
您可以在viewController
堆栈上找到上一个NavigationController
,并调用可用的公共方法
答案 1 :(得分:0)
有几种方法可以构建您的应用以处理内部通信。您想要构建的方式取决于您,但您必须具备object oriented programming的基本知识,最好还有Model View Controller或其他设计模式。
以下是一些有关如何构建应用的示例:
建议1
创建一个A类,让你的应用创建一个实例。
让A创建一个View1和View2的实例,并保留对它们的引用。
让View1调用A中的方法,然后又可以调用View2中的方法。
让View2调用A中的方法,然后可以调用View1中的方法。
建议2
在您的应用中创建View1实例
让View1创建一个View2实例并保留对它的引用。
让View1成为View2的代表
View2可以通过调用其委托来调用View1中的方法,而View1可以通过调用引用来调用View2中的方法。
建议3
创建一些类M1,M2和M3(描述您的应用程序的模型)
创建视图View1和View2。
创建控制器类C
让View1和View2显示M1,M2和M3中的信息
当用户与View1或View2交互时,让他们调用C中的方法,然后调用M1,M2和M3中的方法来改变它们的状态。
M1,M2和M3的变化将反映在View1和View2中显示的信息中。