2011-03-01 123 views
0

我有一个TabBar有4个项目。所有4个项目都会响应个别的UIViewControllers。例如有一个项目,它向用户显示一个屏幕以获取照片并将其上传到网站。现在,这个的UIViewController(postAppViewController)获取从像下面所述的AppDelegate称为:iOS应用程序设计问题和相关的UIImagePickerController问题

[tabItemsViewControllers addObject: [[ PostPageViewController alloc] initWithPost]]; 

其中initWithPost限定在上述的TabBar。

现在postAppViewController从loadView调用一个单独的UIView(postAppView)。然后postAppView调用一个UINavigationController和一个UITableViewController(postTableViewController)。

这是不错的设计?我想不会,因为我遇到了以下几点:

postTableViewController显示其在随后通过调用下面呈现给用户的UIImagePickerController(推送)点击踢当按钮:

[self presentModalViewController:picker animated:YES]; 

我我看到的是tabbar存在,并通过相机/图像库presentModalViewController。

你能指出,如果我错了与设计或还有什么我可以做,以确保使用TabBar问题得到解决。如果我在这里不是很清楚,请告诉我。

很多谢谢。 AB

回答

0

通常我处理的TabBar /导航控制器东西的方式是,在我的应用程序的委托,我构建所有视图控制器。在那里我也构建了导航控制器。当我将视图控制器添加到标签栏(setViewControllers :)时,我设置了导航控制器。我有几个应用程序,其中一些标签有导航控制器,有些则没有,这个方案似乎工作得很好。尽管我没有面前的代码给你一个具体的例子。我会说这样做,我从来没有看到你遇到的问题,我使用相机/图书馆选择器与其他模式视图控制器很多。这完全清楚吗?

+0

感谢Merky,这将是简单的从App代表自身做它,你不必处理多个类。你的方法更简单,当然也适用于我,但我现在想要更好地组织代码,因此尝试使用多个类和层次结构的Views/ViewControllers。将回落到从App Delegate开始,或者从一个Class本身开始。 – Animesh 2011-03-03 10:00:15

0

目前从的UITabBarController模态视图控制器,而不是相关的UIViewController

[self.tabBarController presentModalViewController:picker animated:YES]

+0

问题是我想弄清楚如何调用tabBarController,它是我试图呈现imagepicker的类的parentViewController的子类。 – Animesh 2011-03-03 10:18:03

+0

感谢马克的小费。以下工作适合我。 'TestAppDelegate * testAppDelegate =(TestAppDelegate *)[[UIApplication sharedApplication] delegate];' '[testAppDelegate.bottomTabBarController presentModalViewController:picker animated:YES];' – Animesh 2011-03-03 11:02:57