2

問題

通常の解決策を確認して再確認した後、instantiateViewControllerWithIdentifier:私の経験の範囲を超えた理由でクラッシュしています。

詳細

UIPageViewControllerAppleがページベースのプロジェクトを設定するのと同じように、ページコントローラーをルートコントローラーの子コントローラーとして、ストーリーボードビューコントローラーを使用してページングしようとしています。

ストーリーボードのViewControllerをすべてラベル付けしています。

ここに画像の説明を入力してください

そして、ページング用に初期化しています。

-(MemoImageViewController *)viewControllerAtIndex:(NSUInteger)index
{
    if (index >= [pageMemories count] || [pageMemories count] ==0) return nil;
    MemoImageViewController * viewController = [_mainBoard instantiateViewControllerWithIdentifier:@"MemoImageViewController"];
    viewController.memory = [pageMemories objectAtIndex:index];
   return viewController;
}

_mainboard=私が使用するメインで唯一のストーリーボードのUIStoryboardリファレンス。

それでも、アプリはSIGABRTでクラッシュし、理由は説明されていません。例外ブレークポイントをオンにすると、instantiateViewControllerWithIdentifierメソッドが表示されます。

私が試したこと

  1. ストーリーボードから別のビューコントローラーを起動してみましたが、うまくいきました。それは私が使用しているビューコントローラと関係があると私を信じさせます。
  2. ID、タイトル、ストーリーボードIDを変更しても効果はありませんでした。
  3. 派生データの削除、スナップショット、プロジェクトのクリーンアップ、いくつかの異なる方法の構築、無駄。

これが私の問題を評価するのに十分な情報であることを願っています。ViewControllerをxibに切り替えただけで十分可能性がありますが、これが最初に機能しないかどうかを確認したいと思います。

ありがとう、ハッピーホリデー。

4

1 に答える 1

-1

_mainboard から self.storyboard に変更してみてください

MemoImageViewController * viewController = [self.storyboard instantiateViewControllerWithIdentifier:@"MemoImageViewController"];
于 2014-06-04T18:42:22.130 に答える