好的,这是我的情况,我真的不确定使用哪种设计方法。所以,我很高兴看到我的具体案例的一些意见......
情景:
NSWindowController
的实例(例如MyDocumentManager
)来处理标签创建/操作MyDocument
现在,我即将实施菜单操作。
NSObject
的子类,将所有相关功能分组),例如MyFileMenuController
MyFileMenuController
对象中的操作
问题:
MyFileMenuController
“如何”知道“关于MyDocumentManager
(在我的AppDelegate.m
中创建),以便我们可以访问当前文档详细信息并执行所有相关行动?有任何想法吗?哪种方法更可取?我的想法:
答案 0 :(得分:0)
好的(不确定这是否是最佳方式),但这是我决定做的事情:
[[[NSApplication sharedApplication] delegate] MyDocumentManager]
所以,只要一个对象是我的AppDelegate的一部分,这样我就可以从任何地方访问它。
答案 1 :(得分:0)
我会将一个初始的UIViewController链接到appDelegate.rootViewController。
在这个新的视图控制器(只是称它为“mainViewController”)中,我将把我的tabBar和menuController。
据我所知,你的界面与facebook类似,带有一个leftBarbutton,它可以横向滚动并发现菜单。所以在这个leftBarButton的选择器中,我会调用类似的方法:
- (void)discoverMenuForDocument:(MyDocument*)document {
// Set menu configuration for specific document
// Make animation to discover menu
}
文件可能是这样的:
self.selectedViewController (<-- You cand make this in several ways depending on your code...)
意识到(MyDocument *)不是一个对象而只是一个引用,所以在我看来这样做没有任何问题。
祝你好运!