当前位置: 首页 > 知识库问答 >
问题:

ViewControllers之间的委派

江阳羽
2023-03-14

我知道如何在直接依赖的ViewController之间建立“正常”委派。所以如果我说,我必须从一个视图发送一个消息到它上面的一个,我知道怎么做。但是,如果两者之间有更多的ViewControllers,我如何设置委托呢?

假设我有一个根据方案的设置:

ViewController1->ViewController2->ViewController3(通过ButtonPressed)(通过ButtonPressed)

如果我想从VC2在VC1中设置一个(例如)NSString,我只需写入prepareForSegue中,在那里我调用VC2:

VC2.delegate = self;

但是,当我想在VC3和VC1之间传输数据而不必改变VC2时,我该怎么办呢?如果委托不是“self”,我将它设置为什么?我知道我的描述很糟糕,但我无法描述得更好。

我只想要这个:VC1有一个按钮和一个标签;按钮打开VC2,也有一个按钮,但没有标签;此VC2按钮显示VC3;通过触摸VC3中的按钮,我想改变VC1中的标签。但不需要将一个委托设置为VC2,然后将另一个委托设置为VC1,我知道这是如何工作的。

希望你得到我想要的。

提前道谢!

共有2个答案

谈琛
2023-03-14

您可以将委托从VC2传递到VC3,如下所示:

Inside VC1:
VC2 *vc2 = [VC2 alloc] init];
vc2.delegate = self;

Inside VC2:
VC3 *vc3 = [VC3 alloc] init];
vc3.delegate = self.delegate;

或者您可以使用目标选择器设计模式来实现这一点。

目标选择器方式:

Inside VC1:
VC2 *vc2 = [VC2 alloc] initWithTarget:(id)iTarget andSelector:(SEL)iSelector];

Inside VC2: Pass on the target/selector received from VC1
VC3 *vc3 = [VC3 alloc] initWithTarget:(id)iTarget andSelector:(SEL)iSelector];
公羊兴文
2023-03-14

如果您不想仅仅为了将两个不相关的视图链接在一起而维护过多的指针,则NSNotificationCenter可能会有所帮助。

 类似资料:
  • 我想把我的数据传递给其他的viewcontroller,但我做不到。我的密码在下面。ViewControllers的屏幕截图在这里。当用户写出他们的名字和密码时,我想传递另一个用户的数据,但他们之间还有一个viewcontroller。我认为这是一个问题,但我可以移除这个额外的视图控制器,所以我想了解如何才能把这些数据传递给其他的一个? 第一个viewcontroller的代码 第二个viewco

  • 我正试图将数据从第一个ViewController发送到第二个ViewController。 然后我尝试将它发送到我的另一个ViewController: 致命错误:在展开可选值时意外发现nil 我的第二个视图控制器:

  • 我有两个viewController,分别命名为viewController和我想获取数据并使用委托将其发送到secondViewController。另外,我在secondViewController中有一个数组,当每个数据来自VC1时,它必须存储数据,如; segue1,第一个数据来了->arrayElements{firstData}segue2,第二个数据来了->arrayElements

  • 我的应用程序包含5个ViewControllers的TabBar控制器可以单击每个viewcontrollers中的一个按钮,该按钮将弹出另一个视图,用户可以在其中选择一个设置。按钮(被点击)应该根据每个ViewController中选择的设置来改变其背景。因此,如果用户点击VC1中的按钮并选择设置,该信息应该传播到所有其他VC中,以便按钮具有相同的背景。 我正在使用故事板,我知道这很容易在2VC

  • 问题内容: 我已经开始尝试创建普通的MVC Swing组件。我对M和C没问题,但是V向我抛出了一个我通常无法解决的问题。问题是:控制器是组件的主类(例如MyComponent),并且它扩展了JComponent。视图是从ComponentUI类扩展的ui委托(MyCompanentUI)。委托所做的只是在MyCompanent中添加JTextField并提供MyComponentModel与该字段

  • 问题内容: 装饰器模式和委托模式(如果有)之间有什么区别?我不仅想了解实现细节,还不想了解用例差异和如何使用它们的主观观点。 装饰图案 委托模式 编辑: 您能否指向使用这些模式的OS源代码(在OS项目中)(尤其是委托,因为在Java IO类中使用了装饰)。我正在寻找一些实际用法,而不仅仅是虚拟示例。也许这些模式是相同的,只是标题不同。随时写这个意见。 问题答案: 装饰器使用委派,但使用一种非常特定