Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios6 在UISplitViewController(主详细信息模板)中以编程方式显示和隐藏popover(MasterViewController)_Ios6_Uisplitviewcontroller_Show Hide_Popover_Master Detail - Fatal编程技术网

Ios6 在UISplitViewController(主详细信息模板)中以编程方式显示和隐藏popover(MasterViewController)

Ios6 在UISplitViewController(主详细信息模板)中以编程方式显示和隐藏popover(MasterViewController),ios6,uisplitviewcontroller,show-hide,popover,master-detail,Ios6,Uisplitviewcontroller,Show Hide,Popover,Master Detail,我想添加一个显示/隐藏popover的按钮,类似于DropBox应用程序的按钮。 无论是风景画还是肖像画 我已经尝试了很多解决方案,但在这个阶段,我甚至不想因为我的尝试而弄脏水。如果你已经这样做了,或者知道怎么做,请把我送到正确的方向 谢谢 看起来很简单 将某个对象设置为splitViewController的代理。在我的例子中,我以编程方式创建了所有的ViewController,即appdelegate UISplitViewController* splitViewController =

我想添加一个显示/隐藏popover的按钮,类似于DropBox应用程序的按钮。 无论是风景画还是肖像画

我已经尝试了很多解决方案,但在这个阶段,我甚至不想因为我的尝试而弄脏水。如果你已经这样做了,或者知道怎么做,请把我送到正确的方向


谢谢

看起来很简单

将某个对象设置为splitViewController的代理。在我的例子中,我以编程方式创建了所有的ViewController,即appdelegate

UISplitViewController* splitViewController = [[UISplitViewController alloc] init]; [splitViewController setViewControllers:@[navigationViewController1, navigationViewController2]]; splitViewController.delegate = self; 实现委托方法以纵向隐藏主控形状:

- (BOOL)splitViewController:(UISplitViewController *)svc shouldHideViewController:(UIViewController *)vc inOrientation:(UIInterfaceOrientation)orientation { return UIInterfaceOrientationIsPortrait(orientation); } - (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; } 实际上,添加巴布通主义:

-(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:@"Your master title"]; slaveViewController.navigationItem.leftBarButtonItem = barButtonItem; } 在这个方法中,您将获得BarButtonim,您可以自定义它并将其添加到slaveViewController中

最后,在横向方向上移除按钮:

- (BOOL)splitViewController:(UISplitViewController *)svc shouldHideViewController:(UIViewController *)vc inOrientation:(UIInterfaceOrientation)orientation { return UIInterfaceOrientationIsPortrait(orientation); } - (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; }
就是这样。

看起来很简单

将某个对象设置为splitViewController的代理。在我的例子中,我以编程方式创建了所有的ViewController,即appdelegate

UISplitViewController* splitViewController = [[UISplitViewController alloc] init]; [splitViewController setViewControllers:@[navigationViewController1, navigationViewController2]]; splitViewController.delegate = self; 实现委托方法以纵向隐藏主控形状:

- (BOOL)splitViewController:(UISplitViewController *)svc shouldHideViewController:(UIViewController *)vc inOrientation:(UIInterfaceOrientation)orientation { return UIInterfaceOrientationIsPortrait(orientation); } - (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; } 实际上,添加巴布通主义:

-(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:@"Your master title"]; slaveViewController.navigationItem.leftBarButtonItem = barButtonItem; } 在这个方法中,您将获得BarButtonim,您可以自定义它并将其添加到slaveViewController中

最后,在横向方向上移除按钮:

- (BOOL)splitViewController:(UISplitViewController *)svc shouldHideViewController:(UIViewController *)vc inOrientation:(UIInterfaceOrientation)orientation { return UIInterfaceOrientationIsPortrait(orientation); } - (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的目标/操作相同。

有一种更简单、无文档记录的方法。对于现有的UIButton:

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

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

如果我想在横向中隐藏主视图,该怎么办?要在纵向和横向中隐藏主视图,只需在-BOOLsplitViewController:UISplitViewController*svc shoulldhideViewController:UIViewController*vc中返回yesinOrientation:UIInterfaceOrientationorientation{return YES;}谢谢Norman G,但我想要的应该更像DropBox应用程序:在横向模式下,当弹出窗口显示时,它不应该覆盖细节,而应该调整细节窗口的大小以适应剩余空间。你知道怎么做吗?我的问题是BOOLsplitViewController:UIPlitviewcontroller*svc应该在视图控制器:UIViewController*vc inOrientation:UIInterfaceOrientationOrientationOrientation只有在通过物理旋转改变设备的方向时才会触发。如果我想在横向中隐藏主视图呢在纵向和横向中隐藏主视图只需在BOOLsplitViewController:uiplitviewcontroller*svc应在hideviewcontroller:UIViewController*vc inooritation:uiinterface-orientation:uiinterface-orientation{return-yes;}谢谢Norman G,但我想要的应该更像DropBox应用程序:在横向模式下,显示弹出窗口时,它不应覆盖详图,而应调整详图窗口的大小以适应剩余空间。你知道怎么做吗?我的问题是BOOLsplitViewController:UISplitViewController*svc应该是ideviewcontroller:UIViewController*vc inooritation:uiinterface-oritationoritationoritationoritation只有在通过物理旋转改变设备的方向时才会启动。谢谢,我很快就会试一试!谢谢,我很快就会试一试的!