2012-04-05 6 views
5
... 
    SecondViewController *svc = [SecondViewController new]; 
    [self presentViewController:svc animated:YES completion:NULL]; 
} 

と呼ばないで、黒一色の表示は、私は別のアプリで使用したものと全く同じですが、ここで私はpresentViewControllerを使用していなく、presentModalViewController
completion:NULLがそれらを効果的に同じになり同じ。結果は、少なくとも。presentViewController - viewDid___方法はこのコード

モーダルビューの作成は、どちらも同じように構成されます。メインビューのこれらの行、ストーリーボードのビューコントローラ、一致する.hおよび.mファイル。唯一の違いは、ここではプログラムによるトリガが必要なので、セグをドラッグして実行することは不可能です。
ジェスチャを認識してトランジションメソッドを呼び出すようにオブジェクトが設定されています。それはおそらく問題の原因(少なくともその一部)ですが、必要です。

UIButtonを使用すると不正行為になります。締め切りはなく、ショートカットはありません。

EDIT: NSLogの出力に何か奇妙なものがあります。

2012-04-05 10:41:12.047 MyApp[5962:707] <SecondViewController: 0x1d8c130>
2012-04-05 10:41:12.479 MyApp[5962:707] <SecondViewController: 0x1d8e360>

だから私は、右、非常に簡単な修正を持つことが起こる愚か再び何かをやっていますか?
もう一度編集:presentViewController…が複数回呼び出されていました。修正しました。しかし、まだ黒い。キャッチされない例外により「NSInvalidArgumentException」、理由: 『に戻る代わりに、はるかに簡単presentViewController:animated:completion:

終端アプリのperformSegueWithIdentifier:sender:


レシーバー...は、識別子とはセグエを持っていない...』

私はそれを告げましたsegueを実行しますが、ストーリーボードには1つもありません(私はにはを追加できません。使用しようとしているオブジェクトの 'Connections inspector'の下にStoryboard Seguesセクションはありません)、クラッシュします。正常な動作です。

私が望むのは、モーダル表示を使用し、にセグを作成する必要がないことです。私はそれをしたので、それが可能であることを知っている。
私が必要とするのは、動作させるのに少し役立つことです。

performSegueWithIdentifier:@"Identifier" sender:nilNSSInvalidArgumentException
presentViewController:viewController animated:YES completion:NULL空のビュー

答えて

12

「あなたはストーリーボード リソースファイルで指定することはできませんいくつかのアクションに応じて、おそらく 、プログラムでセグエをトリガするために、このメソッドを呼び出すことができます」:ドキュメントは、あなたの説明と一致するように見えますとった。

これで問題の行を置き換えます。このソリューションに

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Storyboard" 
                bundle:nil]; 
SecondViewController *viewController = 
      [storyboard instantiateViewControllerWithIdentifier:@"SecondView"]; 
[self presentViewController:svc animated:YES completion:NULL]; 

クレジットがIturPabloの自己回答の質問に行く:
TabBarController, overwriting shouldSelectViewController to do a segue

+0

こんにちは仲間、良い答え、ウルロックスター仲間!それは大好き!助けてくれてありがとう – iProRage

1

あなたはperformSegueWithIdentifier:sender:をお探しですか?

+0

すべてで働いていなかったことを(誤差は約何かでした受信者はセグの識別子を持っていない)ので、私はシンプルな現在/モーダルの表示を取り消すだろうと考えました。 – Thromordyn

+0

ストーリーボード内のセグの先頭を、私がそのメソッドと呼んでいないコントローラーに接続すると、そのエラー**が発生します。 –

+0

ビュー/識別子/ etcのすべての名前が正しいことを確認しました。私はそれを動作させることができたとしても、別のボタンに合わせるためにUIを再加工する必要があります。 (このビュー(実際には "Second"とは呼ばれていません)は計画されていないため、別のオブジェクトに合わせる余地はあまりありません)。 – Thromordyn

関連する問題