2012-05-08 14 views
5

XCode 4.3.2でストーリーボードを使い始めました。私はMaster-Detailアプリケーション(iPad用分割ビューアプリケーション)から始めました。詳細ビュー(DetailVC)では、カスタムビューの配列を表示したビューがあります。XCode Storyboard:Segueトリガーがストーリーボード上にないときにSegueを作成する方法

カスタムビュー(名前がGridView)には、各カスタムビューのタップイベントを処理するためのタップジェスチャ認識機能があります。 GridViewをタップすると、ビューコントローラがいくつかの検索結果(SearchResultsVC)をプッシュします。 GridView

は別のnibファイルで作成された、と私は先SearchResultsVCとプッシュセグエを作成する方法DetailVCSearchResultsVCは、ストーリーボードに常駐しますか? DetailVCとSearchResultsVCの間にセグを作成しましたか?タップジェスチャーが認識されたときに、GridViewクラスの内部からプログラム的にこのセグをトリガーできますか?

[自己performSegueWithIdentifier: "yourSegueIdentifier" 差出人@:自己]あなたは、水道の使用を処理する方法で

答えて

7

StoryBoardコントロールで、DetailVCからSearchResultVCにドラッグして、どのタイプのセグを望むかを選択します。属性インスペクタで上記の方法と同じセグ識別子を指定してください。

私は私が思う、私はそれを台無しつもり試みだと私の答えを改善:

1)あなたのDetailVC.hでこの

IBOutlet UIView * gridView; 

のようなあなたのGridViewのインスタンス変数を作成しても作成getterメソッドとあなたのDetailVC.mで今、この

-(UIView *)gridView; 
-(IBAction)myGridGotPressed:(id)sender; 

2)のようなあなたのグリッドビューのIBActionは、この

ようなあなたのメソッドを実装しますまた、
-(UIView *)gridView{ 
if(!gridView){ 
[[NSBundle mainBundle] loadNibNamed:@"GridView" owner:self options:nil]; 
} 
return gridView; 
} 

あなたがDetailVCにあなたのGridViewのfilesOwnerクラスを変更して、通常通りアウトレットとアクションをフックアップする必要があり、この作業を行うには)この

-(IBAction)myGridGotPressed:(id)sender{ 
[self performSegueWithIdentifier:@"yourSegueIdentifier" sender:self]; 
} 

3のようなあなたのIBActionを実装します。

私は役立つことを願っています。

+1

グリッドビューは、タッチをDetailVCに戻す必要があります。 UIViewサブクラスはセグを実行できません。 – jrturton

+0

私はDetailVCがIBActionまたは彼自身のプロトコル経由でタッチを処理する方法を持っていると推測しました。 –

+0

@jrturton - TouchをDetailVCに戻すにはどうすればいいですか?デリゲートの使用 - その場合、DetailVCへの参照はどのようにして得られますか(ビューはビューコントローラについて知るべきではありません)。 – vikmalhotra

関連する問題