0

我已经开发了一个小型iPhone应用程序,通过使用单例来浏览视图。这里是我的单例类的示例方法。iPhone:与Tabview控制器和导航控制器一起使用Singleton

+ (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

+1

请清晰起见,重新格式化。另外,“单身”是一个词。 – 2010-05-04 05:09:38

回答

0

你不应该使用一个单独的管理界面,即使你做到了,你不会把UI逻辑在一个类的方法。你需要从头开始重新考虑你的设计。

正常模式是将导航控制器或tabbar控制器作为应用程序委托的属性。应用程序委托本身不应该是任何控制器的子类,而只是实现应用程序委托协议的NSObject子类。

看看苹果提供的模板项目在Xcode看到快速和肮脏的方法来组织各地导航和/或选项卡创建的应用程序。

只有当你必须确保一个类的唯一一个实例同时存在时,才应该使用单例。你不需要制作自己的单例来管理UI。应用程序委托被附加到本身是单例的应用程序对象。这意味着应用程序委托对您可能需要的UI的类提供了所有限制。除此之外,你不需要另一个单身人士。单身的

过度使用是危险的,可能会导致被困,导致了大规模的重写了死胡同设计。在使用前仔细考虑。

+0

感谢您的回复。它非常好的描述。其实要访问我使用基于事件的服务访问的Web服务。像didReceiveResponse,didReceiveData,connectionDidFinishLoading。当它达到connectiondidfinishloading时,我访问单个类并显示下一个控制器。你可以建议我访问web服务,使我能够避免单例类访问控制器的任何otherway。 在此先感谢。 – user304804 2010-05-04 06:55:03

+0

是的,使用将被通知响应完成的委托。 – 2010-05-04 07:32:17

+0

但我不想等到connectionDidFinishLoading。其基于事件。我只是简单地调用请求的方法,该方法应该返回响应。 – user304804 2010-05-04 08:39:10