I have pushed a view in navigation controller. For eg: view1 pushed view2, if I want to call any view1 method from view2. Is it possible. Is it a good practice.
TIA
I have pushed a view in navigation controller. For eg: view1 pushed view2, if I want to call any view1 method from view2. Is it possible. Is it a good practice.
TIA
有几种方法可以构建您的应用程序以在内部通信中处理它。您想要的结构方式取决于您,但您必须具备面向对象编程的基本知识,最好还有模型视图控制器或其他设计模式。
以下是一些关于如何构建应用程序的示例:
建议一
创建一个类 A 并让您的应用程序创建它的一个实例。
让 A 分别创建 View1 和 View2 的一个实例并保留对它们的引用。
让 View1 调用 A 中的方法,A 又可以调用 View2 中的方法。
让 View2 调用 A 中的方法,A 又可以调用 View1 中的方法。
建议二
在您的应用中创建 View1 的实例
让 View1 创建 View2 的一个实例并保留对它的引用。
让 View1 成为 View2 的代表
View2可以通过调用它的delegate来调用View1中的方法,View1可以通过调用引用来调用View2中的方法。
建议 3
创建一些类 M1、M2 和 M3(描述您的应用程序的模型)
创建视图 View1 和 View2。
创建一个控制器类 C
让 View1 和 View2 显示 M1、M2 和 M3 中的信息
当用户与 View1 或 View2 交互时,让他们调用 C 中的方法,C 中的方法依次调用 M1、M2 和 M3 中的方法来改变它们的状态。
M1、M2 和 M3 的变化将通过 View1 和 View2 中显示的信息反映出来。
是的,有可能,实际上有几种方法可以做到这一点:
使用delegate
模式,正如评论中建议的 NeverBe(尽管您仍然需要将引用传递给调用者)
只需在创建时传递View1
引用View2
,然后使用该引用来调用您需要的方法。
您可以viewController
在NavigationController
堆栈上找到上一个,并调用它可用的任何公共方法