Переключение просмотра через функцию - PullRequest
0 голосов
/ 24 января 2012

Я работаю над приложением для 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];
     }
 }

Это viewDidLoad для viewController.m. Во-первых, он показывает 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];

Это не работает. Кто-нибудь может дать подсказку, чтобы решить этот или альтернативный путь? (пс. Я тестирую на iPad.)

1 Ответ

0 голосов
/ 24 января 2012

Вы можете переключать виды с помощью этой функции:

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

Вы можете установить modaltransitionstyle в соответствии с вашими желаниями.

Не забудьте импортировать ваш заголовочный файл в начало вашего класса.

#import "YourView.h"
...