通过功能切换视图

时间:2012-01-24 15:10:39

标签: iphone ipad webview views switch-statement

我正在开发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上测试。)

1 个答案:

答案 0 :(得分:0)

您可以使用此功能切换视图:

YourView *screen = [[YourView alloc] initWithNibName:nil bundle:nil];
    screen.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
    [self presentModalViewController:screen animated:YES];
    [screen release];

您可以根据自己的意愿设置模态转换方式。

不要忘记在您的班级顶部导入头文件。

#import "YourView.h"