2011-10-24 4 views
2

マスターディテールアプリケーションに基づいてストーリーボードをセットアップし、ディテールビューをナビゲーションコントローラに埋め込み、2番目の詳細ビューとして使用する新しいテーブルビューコントローラオブジェクトを追加しますコントローラ。UISplitViewControllerが新しいdetailViewをプッシュするときにデリゲートメソッドを呼び出さない

次に、ルートビューと詳細ビューコントローラの両方を同時に押すため、次のコードで新しい詳細ビューコントローラを押します(詳細ビューコードのみが表示されます)。

// Push the detailView view controller: 
NewClass *newViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"test"]; 

newViewController.navigationItem.hidesBackButton = YES; 
self.splitViewController.delegate    = newViewController; 

[self.detailViewController pushViewController:newViewController animated:YES]; 

これはsplitViewのデリゲートメソッドは、プッシュの前または後に呼び出されることはありませんことを除いて、完璧に動作します。ポートレートモードでdetailViewControllerを押すと、masterViewポップオーバーをドロップするボタンが表示されません。これは、横向きに回転してからポートレートモードに戻るまで表示されません。

willHideViewController/willShowViewController分割ビューコントローラのデリゲートメソッドを呼び出すか、手動で呼び出すようにするにはどうすればよいですか?

答えて

2

私が見つけたことから、方向は変更されていないので、メソッドを呼び出すことはありません。あなたのソリューションを投稿するための

if(self.navigationItem.leftBarButtonItem != nil) { 
    newViewController.navigationItem.leftBarButtonItem = self.navigationItem.leftBarButtonItem; 
} 

// Push the newViewController 
+0

ありがとう:あなたがしなければならない何

は、それがすでにこのようなポップオーバーに結び付けられていますので、提示ビューコントローラからボタンを渡すことです。私はこの正確な問題を抱えており、数日間ナッツを運転しています。 オリエンテーションが変更されていないため、あなたが「見つけた場所」を私に示してもらえますか? – Darrrrrren

+1

UISplitViewControllerクラスの下部にある参照(http://developer.apple.com/library/ios/#documentation/uikit/reference/UISplitViewControllerDelegate_protocol/Reference/Reference.html#//apple_ref/occ/intfm/UISplitViewControllerDelegate/splitViewController) :willShowViewController:invalidatingBarButtonItem :) 2つのメソッドのディスカッションセクションに、「ビューコントローラが縦向きから横向きに回転するとき」(またはその逆)....新しいビューコントローラを押すと、回転していない。 – lnafziger

+0

ありがとうございます。私はこの問題に遭遇するよう勧められていない何かをやっていると思っていますが、それはショーストッパーではありませんので、私はしばらくそれに座ります。 – Darrrrrren

関連する問題