24

iOSアプリのストーリーボードに複数のUIViewControllerがあります。別のUIViewControllerから(ストーリーボード内の)UIViewControllerの1つを開きたい。

以下のコードを試しましたが、iOS 5より前に使用したにもかかわらず機能せず、正常に機能しました。

- (IBAction)addNotes:(id)sender {
    NotesViewController *notesView = [[NotesViewController alloc] initWithNibName:@"NotesViewController" bundle:nil];
    [self presentModalViewController:notesView animated:YES];
}

iOS 5ストーリーボードでこのアクションを実行するにはどうすればよいですか?

4

6 に答える 6

55

ストーリーボードがあると仮定して、ストーリーボードに移動し、VCに識別子(インスペクター)を指定してから、次の手順を実行します。

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
UIViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"IDENTIFIER"];
[self.navigationController pushViewController:vc animated:YES];

実行したいxibファイルがあると仮定します。

UIViewController *vc = [[UIViewController alloc] initWithNibName:@"NIBNAME" bundle:nil];
[self.navigationController pushViewController:vc animated:YES];

xibファイルなし:

UIViewController *vc = [[UIViewController alloc] init];
[self.navigationController pushViewController:vc animated:YES];
于 2012-01-19T10:05:33.533 に答える
7

以下はSwift3.0以降で動作します。

ストーリーボード

let storyBoard = UIStoryboard(name: "Main", bundle: nil)
let mainViewController = storyBoard.instantiateViewController(withIdentifier: "Identifier")
self.navigationController?.pushViewController(mainViewController, animated: true)

.xib

    let viewController = UIViewController(nibName: "NibName", bundle: nil)
    self.navigationController?.pushViewController(viewController, animated: true)

.xibなし

let viewController = UIViewController()
self.navigationController?.pushViewController(viewController, animated: true)
于 2015-11-03T11:25:26.610 に答える
4

Swift3.1バージョンで更新

ナビゲーションコントローラーを組み込んでいない場合は、

let storyBoard:UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let viewController2 = storyBoard.instantiateViewController(withIdentifier: "ViewController2")
self.present(viewController2, animated: true, completion: nil)

そして、もしあなたがナビゲーションコントローラーを埋め込んでいたなら、

let storyBoard:UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let viewController2 = storyBoard.instantiateViewController(withIdentifier: "ViewController2")
self.navigationController?.pushViewController(viewController2, animated: true)
于 2017-06-12T09:22:51.753 に答える
4

スウィフト5

let storyboard = UIStoryboard(name: "YourStoryboardName", bundle: nil)
let vc = storyboard.instantiateViewController(withIdentifier: "ControllerIdentifier")
self.present(vc, animated: true, completion: nil)
于 2020-03-10T23:29:17.933 に答える
3

モーダルおよび迅速に更新されたバージョンでナビゲーションなしでこの回答が必要な場合は、迅速な4.2で回答してください。

let storyboard = UIStoryboard(name: "YourStoryboardName", bundle: nil)
let controller = storyboard.instantiateViewController(withIdentifier: "mainViewController")
self.present(controller, animated: true, completion: nil)
于 2018-12-05T13:11:09.280 に答える
1
UIViewController *initialHelpView = [[UIStoryboard storyboardWithName:@"StoryBoard_IDentifier" bundle:nil] instantiateViewControllerWithIdentifier:@"ViewController_Identifier"];
[self presentViewController:initialHelpView animated:YES completion:nil];
于 2015-06-01T05:45:35.973 に答える