2

下の写真に示すコードスニペットを使用して、MainStoryBoard.storyboardで定義されたViewControllerをインスタンス化しようとしています。また、コントローラーに識別子を割り当てましたが、写真で「ストーリーボードに識別子masterViewControllerのコントローラーが含まれていません」というエラーが表示され、アプリがクラッシュしました。どんな助けでもありがたいです。

エラー画面 ご存知のとおり、次の解決策は私には機能しませんでした:instantiateViewControllerWithIdentifierでクラッシュする

以下は、ストーリーボードオブジェクトが、viewcontrollerから取得され、ViewControllerWithIdentiferのインスタンス化に使用されるものと同じであることを確認するスナップショットです。ストーリーボードobj同じ 状況の説明:カスタムSplitViewController(UIViewControllerからサブクラス化されたもの)を開発しようとしています。このUIViewControllerは純粋にプログラムです。つまり、IBInterfaceレイアウトに基づいていません。ただし、その子、つまりMasterViewControllerとDetailViewControllerについては、IBInterfaceでレイアウトを作成しました。ここで、SplitViewController(純粋にプログラム的なオブジェクト)でUIStoryboardオブジェクトを取得し、ストーリーボードのレイアウトに基づいてMasterViewControllerをインスタンス化するために使用する最初の写真に示すユーティリティクラスに渡します。

4

2 に答える 2

2

うーん、うまくいくかどうかのようです。

これを試して:

  • プロジェクトをクリーンアップして再構築する
  • storyboard正しいストーリーボードのインスタンスが含まれているかどうかを確認します

shaffoooによる修正(以下のコメントから)

ストーリーボードを再構築したところ、問題が修正されました。

于 2012-08-31T07:53:58.287 に答える
1

ViewControllerクラスと同じ名前をIBの「StoryBoardID」に書き込んでみてください。次に、instantiateViewControllerWithIdentifierメソッドの引数を同じ文字列で編集します。

yourVCName * startingViewController =(yourVCName *)[self.storyboard instanceiateViewControllerWithIdentifier:@ "yourVCName"];

于 2013-01-03T17:11:51.827 に答える