しばらくこれに苦労していて、直接の答えを得ることができないようです。
どんな助けでも大歓迎です!
Navigation Controller を使用している場合:
ViewController *viewController = [[ViewController alloc] init];
[self.navigationController pushViewController:viewController animated:YES];
または、新しいビューを表示したいだけの場合:
ViewController *viewController = [[ViewController alloc] init];
[self presentViewController:viewController animated:YES completion:nil];
同じストーリーボードで新しいビューを提示したい場合は、
CurrentViewController.m では、
#import "YourViewController.h"
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
YourViewController *viewController = (YourViewController *)[storyboard instantiateViewControllerWithIdentifier:@"YourViewControllerIdentifier"];
[self presentViewController:viewController animated:YES completion:nil];
View Controller に識別子を設定するには、 MainStoryBoard.storyboard を開きます。YourViewController ビュー -> ユーティリティ -> ShowIdentityInspector を選択します。そこで識別子を指定できます。
はinstantiateViewControllerWithIdentifier
ですStoryboard ID
。
NextViewController *NVC = [self.storyboard instantiateViewControllerWithIdentifier:@"NextViewController"];
[self presentViewController:NVC animated:YES completion:nil];
CmdSft によって以前の回答コードで呼び出された Viewcontroller を閉じるには
ViewController *viewController = [[ViewController alloc] init];
[self presentViewController:viewController animated:YES completion:nil];
あなたが使用することができます
[self dismissViewControllerAnimated:YES completion: nil];
#import "YourViewController.h"
ナビゲーション バーやタブ バーを含むビューをプッシュするには:
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"YourStoryboard" bundle:nil];
YourViewController *viewController = (YourViewcontroller *)[storyboard instantiateViewControllerWithIdentifier:@"YourViewControllerIdentifier"];
[self.navigationController pushViewController:viewController animated:YES];
View Controller に識別子を設定するには、YourStoryboard.storyboard を開きます。YourViewController ビュー -> ユーティリティ -> ShowIdentityInspector を選択します。そこで識別子を指定できます。
これは私のために働いた:
NSTimer *switchTo = [NSTimer scheduledTimerWithTimeInterval:0.1
target:selfselector:@selector(switchToTimer)userInfo:nil repeats:NO];
- (void) switchToTimer {
UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPad" bundle:nil];
UIViewController *vc = [mainStoryboard instantiateViewControllerWithIdentifier:@"MyViewControllerID"]; // Storyboard ID
[self presentViewController:vc animated:FALSE completion:nil];
}
[self.navigationController pushViewController:someViewController animated:YES];
OPはviewCONTROLLERを変更せずにVIEWを交換する方法を尋ねていると思います。私は彼の質問を誤解していますか?
疑似コードで、彼は次のことをしたいと考えています。
let myController = instantiate(someParentController)
let view1 = Bundle.main.loadNib(....) as... blah
myController.setThisViewTo( view1 )
let view2 = Bundle.main.loadNib(....) as... blah
myController.setThisViewTo( view2 )
私は彼の質問を間違っていますか?