iPhone结构ViewController

时间:2012-07-01 07:48:04

标签: iphone xcode view controller structure

我正在设计一个带有主页的iPhone应用程序。这个页面有多个按钮(6)可以转换到不同的东西。

2个按钮是一个简单的视图,只有一些信息并返回主屏幕。下一个按钮打开一个电子邮件,我相信这只是一个视图,所以与其他两个视图不同。

这是复杂的地方。一个按钮将拍照,另一个按钮将从库中选择一个。完成后,它将编辑它并创建一个我将创建的对象。该对象将存储在一个数组中,该数组将由主页的最后一个按钮打开,UITableViewController将控制该数组。

我的第一个问题是应该使用基于导航的视图控制器还是我自己创建的视图控制器?或者我应该使用一些我甚至不知道的东西?

请帮助!!!如果你真诚地感谢你的帮助!

编辑:

我首先尝试了我自己的方式,我唯一的问题就是这个代码

- (void) displayView:(int)intNewView { 
    NSLog(@"%i", intNewView);
    [home.view removeFromSuperview];
    Instructions *i = [[Instructions alloc]init];
    instructions = i; 
    [self.view insertSubview:instructions.view atIndex:0]; 
}

它在我的SwitchClass中,它控制主窗口的视图。我知道它在那里工作,因为当它第一次运行时,switch类将它指向主屏幕。我知道正在调用该方法,因为控制台正在显示NSLog的东西,但它不会切换。

3 个答案:

答案 0 :(得分:0)

除了你有6个按钮的事实,我会尝试使用UITabBarController来做你想做的事情;这对我来说似乎更自然(但是你应该找到一种方法将你的6个按钮缩小到5,否则它们不会一次全部显示)。

否则,UINavigationController对我来说似乎没问题。对于每个按钮,您按下一个新控制器来处理该按钮功能,然后弹出。它应该很容易。

编辑:

你试过吗?

[self.view addSubview:instructions.view]; 

答案 1 :(得分:0)

你的第一个问题是你应该使用基于导航的控制器...所以当你按下任何按钮时会打开带动画的另一个视图控制器..如果你有任何创建的对象,导航控制器会跟踪父控制器保留在作为导航根目录的父视图控制器中。

这是您应该使用的步骤。

1 - 在主应用程序委托中创建导航控制器,并使其为根视图控制器。

2 - 当你按下有6个按钮的视图控制器时。

3-如果您已将源类型更改为相机,则可以查看此链接以获取相册,然后您可以获取图像... Photo Libaray

4-一旦你得到图像,你可以将它添加到NSMutableArray,在你的情况下,NavigationViewController根目录上将存在具有6个按钮的视图。

每次要查看包含照片的数组时,只需要5个sice,您将使用保存照片的数组初始化uitableviewcontroller的数据源。

由于

答案 2 :(得分:0)

我认为问题来自两个地方之一:

据我了解,这些都是不同的View Controllers,对吗?他们有自己的xib文件?如果是这样,那么请致电:

  

说明* i = [[Instructions alloc] init];

不足。你需要使用

 Instructions *i = [[Instructions alloc] initWithNibNamed:@"Instructions"];

以包含您已在界面构建器中构建的视图。

我认为可能出错的另一件事是您在同一索引处插入所有视图。将索引视为photoshop中的一个层。如果您希望新视图在最后一个视图之外可见,那么它需要是更高的索引。如果您使用addSubview:代替insertSubview: atIndex:

,则会自动处理此问题