0

詳細ビューで左ボタンを押しても、マスター ビュー (つまり UITabBarController) を表示できません。以下のコードは、UISplitViewControllerDelegate を実装して左ボタンを設定する方法です。

iOS 6 と Xcode 4.5 を使用しています。

#pragma mark - UISplitViewControllerDelegate
#warning "incomplete implementation"

- (BOOL)splitViewController:(UISplitViewController *)svc
   shouldHideViewController:(UIViewController *)vc
              inOrientation:(UIInterfaceOrientation)orientation {
    return UIInterfaceOrientationIsPortrait(orientation) ? YES : NO;
}

- (void)splitViewController:(UISplitViewController *)svc
     willHideViewController:(UIViewController *)aViewController
          withBarButtonItem:(UIBarButtonItem *)barButtonItem
       forPopoverController:(UIPopoverController *)pc {
    barButtonItem.title = aViewController.title;

    NSMutableArray *toolbarItems = [self.toolbar.items mutableCopy];
    [toolbarItems insertObject:barButtonItem atIndex:0];
    self.toolbar.items = [toolbarItems copy];
}

- (void)splitViewController:(UISplitViewController *)svc
     willShowViewController:(UIViewController *)aViewController
  invalidatingBarButtonItem:(UIBarButtonItem *)barButtonItem {
    NSMutableArray *toolbarItems = [self.toolbar.items mutableCopy];
    [toolbarItems removeObject:barButtonItem];
    self.toolbar.items = [toolbarItems copy];
}
4

2 に答える 2

0

今後の参考のために、分割ビュー コントローラー デリゲートを設定し、この 2 つのメソッドを実装することで、準備が整います。

- (void)splitViewController:(UISplitViewController *)svc willShowViewController:(UIViewController *)aViewController invalidatingBarButtonItem:(UIBarButtonItem *)button
    {
        //remove button from navigation bar in detail navigation controller
        ((UINavigationController*)[svc.viewControllers objectAtIndex:1]).topViewController.navigationItem.leftBarButtonItem = nil;
    }

- (void)splitViewController: (UISplitViewController*)svc willHideViewController:(UIViewController *)aViewController withBarButtonItem:(UIBarButtonItem*)barButtonItem forPopoverController: (UIPopoverController*)pc{

        //add button to navigation bar in detail navigation controller
        barButtonItem.title = @"Navigation";
        ((UINavigationController*)[svc.viewControllers objectAtIndex:1]).topViewController.navigationItem.leftBarButtonItem = barButtonItem;

    }

barButtonItem のインスタンスは、すべてのトグル プロセスを処理します。

于 2013-03-12T15:45:25.747 に答える
0

問題が解決しました。UIToolbar を UINavigationController に置き換え、左ボタンをクリックしてマスター ビューを表示できるようになりました。

于 2012-12-15T10:45:49.327 に答える