【发布时间】:2012-01-26 04:47:17
【问题描述】:
冒着公开鞭打的风险,我希望有人能澄清我对应用程序控制器和窗口控制器之间通信的理解。这是使用 xcode4 的场景。
使用默认的 AppDelegate.h 和 .m 作为“控制器”(它也是 MainMenu.xib 的委托)。有一个名为 int 计数器的 ivar。
创建了 page.xib 和 PageController.h 和 .m(子类 NSWindowController)。将其导入 AppDelegate.m
使用 IBAction 创建和查看页面对象。像这样: 如果(!page1){ PageController *page1 = [[页面
if (!page1) {
page1 = [[PageControoer alloc] initWithWindowNibName:@"page"];
}
[page1 showWindow:sender];
所以新窗口弹出,我们可以按下按钮等。新窗口的代码都在PageController.h和.m中。一切正常。
这就是上下文,这就是我感到困惑的地方。
a) 问题:假设我想从 PageController 访问 AppDelegate.h 中名为 counter 的原始 ivar。检索或更新变量。我会采取什么方法?
b) 确认:假设我回到 AppDelegate 并希望从 page1 访问选择器。我相信我可以这样做:[page1 runaction];或 [[page1 变量] setStringValue:@"hello"]; (这符合但我不确定它是否真的有效,因为我无法将更改放入 xib 视图中。)
好的,笨蛋。假设另一个视图是用另一个视图控制器创建的,称为 Page2Controller.h 和 .m。 c)页面和page2之间的数据应该如何流动->通过AppDelegate还是直接?将它们连接在一起的语法是什么样的?
我一直在关注教程,但它们并没有真正涵盖这种来回消息传递。感谢大家的帮助!
【问题讨论】:
标签: cocoa