我使用单例来开发一个小型iPhone应用程序,用于浏览视图。这是我的单身类的示例方法。
+ (void) loadMenuController:(NSMutableArray *)menuItems{
MenuViewController *menuViewControler = [[MenuViewController alloc] initWithNibName:@"MenuViewController" bundle:nil];
[menuViewControler setMenuItems:menuItems];
RootViewController *root = (
P2MAppDelegate *appDelegate = (P2MAppDelegate*) [[UIApplication sharedApplication] delegate];
UINavigationController *navController = [appDelegate navigationController];
[navController pushViewController:menuViewControler animated:YES];
[menuViewControler release];
}
现在我的要求已更改为需要标签视图控制器。我可以将我的应用程序委托更改为tabview控制器,但我仍然需要在每个选项卡中导航。我无法弄清楚如何从我的单例类导航。
请指导我。如果我的查询不清楚,请告诉我。
提前致谢。
此致 Malleswar
答案 0 :(得分:0)
您不应该使用单例来管理界面,即使您这样做,也不会将UI逻辑放在类方法中。您需要从头开始重新考虑您的设计。
正常模式是将导航控制器或标签栏控制器作为应用程序委托的属性。 app委托本身不应该是任何控制器的子类,而只是实现应用程序委托协议的NSObject子类。
查看Apple提供的Xcode模板项目,了解构建围绕导航和/或标签构建的应用程序的快速而肮脏的方法。
只有当您必须确保一个且只有一个类实例同时存在时,才应使用单身人士。您不需要制作自己的单例来管理UI。应用程序委托附加到应用程序对象,该对象本身是单例。这意味着app delegate为您可能需要的UI提供了类的所有限制。除此之外,您不需要另外的单例。
过度使用单身是危险的,可能会导致您的设计陷入死胡同,导致大量重写。在使用之前要仔细考虑。