Iphone 如何使用导航控制器调用方法

Iphone 如何使用导航控制器调用方法,iphone,objective-c,ios,xcode,Iphone,Objective C,Ios,Xcode,我在导航控制器中推送了一个视图。例如:view1推送view2,如果我想从view2调用任何view1方法。有可能吗。这是一个好的做法 TIA是的,这是可能的,实际上有几种方法: 使用delegate模式,正如注释中所建议的那样(尽管您仍然需要将引用传递给调用方) 创建时只需将View1引用传递到View2,然后使用该引用调用所需的方法 您可以在NavigationController堆栈上找到上一个viewController,并调用其可用的任何公共方法 有几种构建应用程序的方法来处理内部通信

我在导航控制器中推送了一个视图。例如:view1推送view2,如果我想从view2调用任何view1方法。有可能吗。这是一个好的做法


TIA是的,这是可能的,实际上有几种方法:

  • 使用
    delegate
    模式,正如注释中所建议的那样(尽管您仍然需要将引用传递给调用方)

  • 创建时只需将
    View1
    引用传递到
    View2
    ,然后使用该引用调用所需的方法

  • 您可以在
    NavigationController
    堆栈上找到上一个
    viewController
    ,并调用其可用的任何公共方法


  • 有几种构建应用程序的方法来处理内部通信。您想要构建的方式取决于您自己,但您必须具备基本的设计模式知识,最好还具备设计模式或其他设计模式的知识

    以下是一些关于如何构建应用程序的示例:

    建议1

    • 创建一个类a,让你的应用程序创建一个实例

    • 让用户分别创建View1和View2的一个实例,并保留对它们的引用

    • 让View1在中调用一个方法,而该方法又可以在View2中调用一个方法

    • 让View2在中调用一个方法,该方法又可以在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中的方法,而C又调用M1、M2和M3中的方法来更改它们的状态

    • M1、M2和M3的变化将通过视图1和视图2中显示的信息反映出来


    这是正常的做法,例如,您可以使用“委托”模式。