1

我想添加一个显示/隐藏弹出框的按钮,类似于 DropBox 应用程序。(横向和纵向)

DropBoxAppImageLink

我已经尝试了很多解决方案,但在这个阶段,我什至不想用我的尝试来搅浑水。如果你已经这样做了,或者知道如何做到这一点,请向我发送正确的方向!

谢谢!

4

2 回答 2

2

看来这很简单。

将一些对象设置为 splitViewController 的委托。就我而言(我以编程方式创建所有视图控制器)是 appdelegate。

UISplitViewController* splitViewController = [[UISplitViewController alloc] init];
        [splitViewController setViewControllers:@[navigationViewController1, navigationViewController2]];
        splitViewController.delegate = self;

实现委托方法以在纵向隐藏主人:

- (BOOL)splitViewController:(UISplitViewController *)svc shouldHideViewController:(UIViewController *)vc inOrientation:(UIInterfaceOrientation)orientation {
    返回 UIInterfaceOrientationIsPortrait(orientation);
}

实际添加 barButtonItem:

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

            UINavigationController* slaveNavigationViewController = svc.viewControllers[1];
            UIViewController* slaveViewController = slaveNavigationViewController.viewControllers[0];
            [barButtonItem setTitle:@"你的主标题"];
            slaveViewController.navigationItem.leftBarButtonItem = barButtonItem;
        }

在此方法中,您将获得自定义的 barButtonItem 并将其添加到 slaveViewController。

最后一个,删除横向按钮:

- (void)splitViewController:(UISplitViewController *)svc willShowViewController:(UIViewController *)aViewController invalidatingBarButtonItem:(UIBarButtonItem *)barButtonItem {
    UINavigationController* slaveNavigationViewController = svc.viewControllers[1];
    UIViewController* slaveViewController = slaveNavigationViewController.viewControllers[0];
    [barButtonItem setTitle:@"Drops"];
    slaveViewController.navigationItem.leftBarButtonItem = nil;
}

而已。

于 2013-06-24T13:10:02.437 回答
2

有一种更简单、未记录的方法可以做到这一点。对于现有的 UIButton:

[button addTarget: theSplitViewController action: @selector(toggleMasterVisible:) forControlEvents:UIControlEventTouchUpInside];

此目标/动作与 willHideViewController 函数中发送的 barButtonItem 相同。

于 2014-09-06T01:11:08.527 回答