【发布时间】:2011-10-19 15:57:55
【问题描述】:
我有一个UIViewController,顶部有一个UIToolBar,有3 个按钮和一个UIView,当触摸这些按钮时,我必须更改控制器的视图。我能做些什么来得到我的porpuse?提前致谢。
【问题讨论】:
标签: iphone ios uiview uiviewcontroller
我有一个UIViewController,顶部有一个UIToolBar,有3 个按钮和一个UIView,当触摸这些按钮时,我必须更改控制器的视图。我能做些什么来得到我的porpuse?提前致谢。
【问题讨论】:
标签: iphone ios uiview uiviewcontroller
您可能希望使用UINavigationController 之类的东西来控制视图堆栈,然后让您的按钮为Touch Up Inside 操作调用这些方法之一:
pushViewController:animated:popViewControllerAnimated:popToRootViewControllerAnimated:popToViewController:animated:这是一个很好的 uinavigationcontroller-tutorial 供您研究。
【讨论】:
您需要为您设置的每个操作执行类似的操作。
在当前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 涵盖了我上面提到的所有内容。这是一种非常简单的入门方式。
【讨论】:
UiViewController view 属性是您看到的基本视图。可以设置(替换为另一个)。所以用你创建的另一个视图替换 ViewController 的视图对象。
UIView * customView = [[[UIView alloc] initWIthFrame:viewFrame] autorelease];
[self setView:customView];
这里self代表当前viewController。
【讨论】: