使用不同的ViewControllers设计应用程序

时间:2011-03-07 11:01:06

标签: iphone ipad

在stackoverflow上阅读了很多教程和线程之后,脑子里还剩下一个基本问题

我的应用程序的结构应如下:

MainMenu - 全屏没有导航栏但有2个按钮(button1和button2)

第1页 - 按下按钮1应该出现,并且顶部应该有一个导航栏,并带有“后退”按钮以返回MainMenu。

第2页 - 应该按下按钮2,而顶部没有导航栏。 Page2应该是一个UISplitView。某处必须有一个后退按钮 (我认为这是问题开始的地方,UISplitView无法以模态方式呈现,可以吗?)

您应该能够将子页面添加到Page1。

那我怎么能这样做?我不需要可执行代码,只是提示我的应用程序的结构应该如何。例如,添加导航控制器的位置,MainMenu的外观如何。

提前致谢!

1 个答案:

答案 0 :(得分:0)

您是否正在尝试为iPad创建应用程序?

您的应用程序的UI sems不一致是First View唯一没有导航栏的视图。

您将使用标准导航从主页导航到page1。因此,您将添加一个带有Home View Controller的导航控制器作为带有隐藏导航栏的Root View COntroller。

例如。

-(void)applicationDidFinishLaunching:...
{
   HomeViewController * hvc = [[HomeViewController alloc]init];  
   UInavigationController * nvc = [[UINavigationController alloc]initWithRootViewController:hvc];
   nvc.navigationBar.hidden = YES;
   [window addSubView:nvc.view];
}

然后点击第一个按钮,您将按下Page1 View Controller

-(IBActtion)button1Pressed:(id)sender
{
   Page1ViewCOntroller * p1vc = [[Page1ViewCOntroller alloc]init]; 
   [self.navigationController pushViewCOntroller:p1vc animated:YES];
}

在Page1ViewController的viewWillAppear: method中取消隐藏NavigationBar并将其隐藏在viewWillDisappear: method

您的Page 2需要是splitViewController。 现在关于Split View,Apple says

The split view controller’s view should always be installed as the root view of your application window. You should never present a split view inside of a navigation or tab bar interface.

但是由于上面的语句中没有写“必须”,并且因为它最终是itselt中的View Controller,所以你应该可以在窗口或其他视图中添加它。

尝试创建一个VIewController,其上添加了分割VIew,就像page1一样,按下导航控制器上的View。