Я работаю над приложением 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 (на самом деле, он отлично работает, когда тот же код запускается с помощью кнопки). Но когда я вызываю эту функцию в другом файле (not viewController.m), например
ViewController *viewcontroller = [[ViewController alloc] init];
[viewcontroller changeView];
Это не работает. Любой может дать ключ к решению этого или альтернативного пути? (П.с. я тестирую на IPad.).
Спасибо за замечание, но, конечно, я уже знал это. Однако я не мог использовать его, потому что то, что я действительно хотел сделать, это представить imagepicker на веб-просмотре (как вы объяснили, но imagepicker вместо экрана), но если он вызван внешней функцией (а не кнопкой), это не так, т работы. Вот почему я попытался переключить представления, где normalview представляет imagepicker при срабатывании viewDidAppear. Если я могу сделать presentModalViewController: анимированный, чтобы работать, когда он вызывается другим файлом (not view controller.m), мне даже не нужно переключать представление. Можете ли вы дать мне решение? –