我正在开发iPhone / iPad应用程序并试图通过函数调用而不是按钮来切换视图。我已经看到很多源切换由按钮触发的视图,但没有解释如何切换由函数触发的视图。我试图自己做这件事,但失败了。这是我尝试过的代码:
- (void)viewDidLoad
{
[super viewDidLoad];
if (self.webview == nil) {
self.webview = [[MainViewController alloc] init];
/* webview initialized with storyboard */
if (self.view.superview == nil) {
[self.view insertSubview:self.webview.view atIndex:0];
}
[storyboard release];
}
}
这是viewController.m的viewDidLoad。首先,它显示了WebView。
- (void)changeView {
self.normview = [[AlternateViewController alloc] init];
/* normview initialized with storyboard */
[UIView beginAnimations:@"View Flip" context:nil];
[UIView setAnimationDuration:0.75];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:self.view cache:YES];
[self.webview viewWillDisappear:YES];
[self.webview viewDidDisappear:YES];
[self.webview.view removeFromSuperview];
[self.view insertSubview:self.normview.view atIndex:0];
[self.normview viewWillAppear:YES];
[self.normview viewDidAppear:YES];
[UIView commitAnimations];
}
当调用此changeView函数(在viewController.m中)时,它应该将视图从webview更改为normview(实际上,当按钮触发相同的代码时,它可以正常工作)。但是当我在其他文件(不是viewController.m)中调用此函数时,例如
ViewController *viewcontroller = [[ViewController alloc] init];
[viewcontroller changeView];
它不起作用。任何人都可以提供解决这个或另一种方式的线索? (ps。我在iPad上测试。)
答案 0 :(得分:0)
您可以使用此功能切换视图:
YourView *screen = [[YourView alloc] initWithNibName:nil bundle:nil];
screen.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
[self presentModalViewController:screen animated:YES];
[screen release];
您可以根据自己的意愿设置模态转换方式。
不要忘记在您的班级顶部导入头文件。
#import "YourView.h"