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];
}
そして(viewController.mで)このchangeView関数が呼び出されたとき、それは(同じコードがボタンによってトリガーされたときに実際に、それが正常に動作します)のWebViewからnormviewにビューを変更する必要があります。しかし、私が他のファイル(viewController.mではなく)でこの関数を呼び出すと、
ViewController *viewcontroller = [[ViewController alloc] init];
[viewcontroller changeView];
これは機能しません。誰でもこれを解決するための手がかりを与えることができますか? (psの私はiPadでテストしています。。)あなたはこの機能でビューを切り替えることができ
コメントありがとうございましたが、私はすでにそれを知っていました。しかし、実際に私がしたいのは、あなたが説明したように、画面の代わりにimagepickerをimageviewerをwebviewに提示していたからです。しかし、それが(ボタンではなく)外部関数によってトリガーされた場合、仕事。だからこそ私は、viewDidAppearがトリガされたときに、現在のimagepickerをノーマルビューで表示するように、ビューを切り替えようとしました。 presentModalViewController:アニメーションが他のファイル(View Controller.mではなく)から呼び出されたときに動作するようにすることができれば、ビューを切り替える必要はありません。私に解決策を教えてもらえますか? –