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

我已经尝试了很多解决方案,但在这个阶段,我什至不想用我的尝试来搅浑水。如果你已经这样做了,或者知道如何做到这一点,请向我发送正确的方向!
谢谢!
我想添加一个显示/隐藏弹出框的按钮,类似于 DropBox 应用程序。(横向和纵向)

我已经尝试了很多解决方案,但在这个阶段,我什至不想用我的尝试来搅浑水。如果你已经这样做了,或者知道如何做到这一点,请向我发送正确的方向!
谢谢!
看来这很简单。
将一些对象设置为 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;
}
而已。
有一种更简单、未记录的方法可以做到这一点。对于现有的 UIButton:
[button addTarget: theSplitViewController action: @selector(toggleMasterVisible:) forControlEvents:UIControlEventTouchUpInside];
此目标/动作与 willHideViewController 函数中发送的 barButtonItem 相同。