1

次のスキーマを持つアプリケーションがあります。

ログイン -> タブバー ->

  1. UINavigationController -> Tab1ViewController
  2. UISplitViewController -> UINavigationController -> MasterViewController/DetailViewController
  3. UINavigationController -> Tab3ViewController

次に、DetailViewController に実装します

- (void)splitViewController:(UISplitViewController *)splitController willHideViewController:(UIViewController *)viewController withBarButtonItem:(UIBarButtonItem *)barButtonItem forPopoverController:(UIPopoverController *)popoverController

しかし、それは決して呼び出されません。

また、splitview デリゲートを詳細に入れました。

@interface DetailViewController : UITableViewController
<UISplitViewControllerDelegate>

足りないものはありますか?

4

1 に答える 1

3

複数のものが欠けています。

1つは、問題をすばやく解決するために、次のように記述します。

splitViewController.delegate = self;

<UISplitViewControllerDelegate>2 つ目は、プロトコルに準拠しているかどうかは問題ではないことに注意してください。これはコンパイラにとってのヒントにすぎません。View Controller に、どのオブジェクトがそのデリゲートになるべきかを魔法のように認識させるわけではありません...

補足として、これは Xcode とはまったく関係ありません。

于 2012-11-25T06:20:04.930 に答える