是否有任何方法可以通过编程方式隐藏splitviewcontroller中的主视图.在我的应用程序中,第一个屏幕将是一个splitviewcontroller,我不需要任何拆分视图用于下一个屏幕.我怎么能做到这一点
在SDK 5.0中,他们为UISplitViewControllerDelegate添加了新方法,可以轻松地为您完成此操作.只需像下一个那样实现它,你就不会看到主视图:
- (BOOL)splitViewController:(UISplitViewController*)svc shouldHideViewController:(UIViewController *)vc inOrientation:(UIInterfaceOrientation)orientation { return YES; }
您可以看到旋转的唯一位置 - 主视图的一部分在动画期间可见.我已经用简单的方法解决了这个问题,只是在master中加载了空视图和黑视图.
PS:不确定这是否适用于i0707.但希望这对现在有同样问题的其他人有用.
与杰克的答案相同,但是一个班轮.过去 - (void)setDetailItem:(id)newDetailItem {...}以关闭主人.
[[UIApplication sharedApplication] sendAction: self.navigationItem.leftBarButtonItem.action to: self.navigationItem.leftBarButtonItem.target from: nil forEvent: nil];
Matt Gemmell创建了一个名为"MGSplitViewController"的优秀自定义splitViewController.它非常容易实现,评论很多,并且包含许多普通splitViewController所没有的优秀功能(在横向视图中隐藏主视图,在横向视图中更改分割的位置,允许用户在运行时流畅地更改分割的大小,等等).
信息和演示:http://mattgemmell.com/2010/08/03/mgsplitviewcontroller-updated/
直接来源:https://github.com/mattgemmell/MGSplitViewController/
SplitViewController提供的BarButtonItem是以编程方式隐藏主视图控制器的关键.
这段代码很危险!但优雅:)
导入目标c消息库
#import
接下来,获取SplitViewController提供的UIBarButtonItem的句柄
- (void)splitViewController:(UISplitViewController *)splitController willHideViewController:(UIViewController *)viewController withBarButtonItem:(UIBarButtonItem *)barButtonItem
forPopoverController:(UIPopoverController *)popoverController
{
barButtonItem.title = @"Master";
[self.navigationItem setLeftBarButtonItem:barButtonItem animated:YES];
//Obtain handle to BarButtonItem
[self setMasterButtonItem:barButtonItem];
}
然后当事件被触发时应该触发主视图控制器的自动解除,即
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
你可以这样做
objc_msgSend(self.masterButtonItem.target, self.masterButtonItem.action);