Iphone 如何将代理设置为另一个ViewController?
我最近开始为iPhone开发,到目前为止,我做得很好,但有一个基本模式我似乎真的不明白 比如说,我有一个带有两个视图的选项卡栏和一个自定义委托协议,因此我的结构如下:Iphone 如何将代理设置为另一个ViewController?,iphone,ios,delegates,uiviewcontroller,tabbar,Iphone,Ios,Delegates,Uiviewcontroller,Tabbar,我最近开始为iPhone开发,到目前为止,我做得很好,但有一个基本模式我似乎真的不明白 比如说,我有一个带有两个视图的选项卡栏和一个自定义委托协议,因此我的结构如下: AppDelegate.h/.m myDelegateProtocol.h FirstViewController.h/.m SecondViewController.h/.m MainView.xib FirstView.xib SecondView.xib 现在我想实现以下目标:我在FirstView.xib中放置了一个按
- AppDelegate.h/.m
- myDelegateProtocol.h
- FirstViewController.h/.m
- SecondViewController.h/.m
- MainView.xib
- FirstView.xib
- SecondView.xib
wasabi您的想法是正确的,假设您希望通过代理协议在这些控制器之间实现相对紧密的耦合 因为在设置委托属性之前,两个控制器都不知道另一个控制器,所以您需要有一个对象,该对象对它们都有引用,从而连接该关系。在您的情况下,这可能是应用程序委托,它可以创建两个控制器,将一个设置为另一个的委托,并将两者传递给选项卡栏控制器
实际上,您可能希望让应用程序委托为两个控制器提供对某个共享模型对象的引用。单击按钮时,第一个ViewController可以更新该模型,第二个ViewController可以观察对模型的更改以更新其显示(或根据当前模型状态仅更新其显示时的视图)。这样,您的控制器就不需要了解彼此的任何情况。我很好奇您的设计是否合理。看起来你可能试图以一种有趣的方式使用委托。你是对的!这实际上在我的任何应用程序中都没有真正的应用程序,我只是好奇和玩弄,以便,嗯……弄清楚事情并理解机制:)看看这个,它有非常好的信息: