在UIViewController中更改视图

时间:2011-10-19 15:57:55

标签: iphone ios uiview uiviewcontroller

我的UIViewController顶部有一个UIToolBar,有3个按钮和一个UIView,触摸时我必须更改控制器的视图。我该怎么做才能得到我的porpuse?提前谢谢。

3 个答案:

答案 0 :(得分:2)

您可能希望使用类似UINavigationController的内容来控制视图堆栈,然后让您的按钮调用Touch Up Inside操作的其中一种方法:

  • pushViewController:animated:
  • popViewControllerAnimated:
  • popToRootViewControllerAnimated:
  • popToViewController:animated:

这是一个很好的uinavigationcontroller-tutorial

答案 1 :(得分:2)

您需要为您设置的每个操作执行类似的操作。

在当前viewController的.h文件中:

#import "OtherViewController.h"

@interface MyViewController : UIViewController
{
    OtherViewController *otherViewController;
}

@property(nonatomic, retain)IBOutlet OtherViewController *otherViewController;

然后在当前viewController的.m文件中,您需要为每个IBAction添加以下内容(在内部修饰)。

在.m文件的顶部添加:

@synthesize otherViewController;

然后进行IBAction并输入以下代码行以显示另一个视图:

[self presentModalViewController:otherViewController animated:NO];

otherViewController中,您可以使用以下方式解雇自己:

[self dismissModalViewControllerAnimated:NO];

注意:您需要做的另一件事是在Interface Builder中为您计划显示的每个视图创建一个UIViewController。然后,您需要进入身份检查器并将类设置为OtherViewController。然后,您需要正常将IBOutlet链接到OtherViewController

有一个YouTube video tutorial涵盖了我上面提到的所有内容。这是一个很简单的入门方式。

答案 2 :(得分:2)

UiViewController view属性是您看到的基本视图。它可以设置(替换为另一个)。所以用您创建的另一个视图替换ViewController的视图对象。

UIView * customView = [[[UIView alloc] initWIthFrame:viewFrame] autorelease];
[self setView:customView];

此处self表示当前viewController