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

时间:2012-08-08 11:35:20

标签: iphone objective-c ios xcode

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

TIA

2 个答案:

答案 0 :(得分:0)

是的,有可能,实际上有几种方法可以做到这一点:

  1. 使用delegate模式,因为NeverBe在评论中建议(尽管您仍需要将引用传递给调用者)

  2. 创建时只需将View1引用传递给View2,稍后再使用该引用来调用您需要的方法。

  3. 您可以在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中显示的信息中。

  •