是否有任何方法可以通过编程方式隐藏splitviewcontroller中的主视图.在我的应用程序中,第一个屏幕将是一个splitviewcontroller,我不需要任何拆分视图用于下一个屏幕.我怎么能做到这一点
在iPad App中我正在使用UISplitViewController.当应用程序以纵向模式启动时,我需要强制显示主弹出窗口.
现在我正在使用此代码,它在iOS 5.0上运行良好.
if (UIInterfaceOrientationIsPortrait(self.interfaceOrientation)) {
if ([[[AppDelegate sharedAppDelegate] splitViewController] respondsToSelector:[[[AppDelegate sharedAppDelegate] btnMenu] action]]) {
[[[AppDelegate sharedAppDelegate] splitViewController] performSelector:[[[AppDelegate sharedAppDelegate] btnMenu] action]];
}
}
Run Code Online (Sandbox Code Playgroud)
但是在iOS 5.1(使用新型主弹出窗口)中,行为似乎是随机的.有时弹出窗口全屏显示,有时效果很好.
5.1的一些建议?
iOS - 拆分视图控制器 - 如何从主视图控制器(较小的左侧控制器)内部获取指向详细视图控制器(较大的右侧控制器)的指针(参考)?
我的直觉告诉我,主分割视图控制器应该引用细节视图控制器和我自己的主视图控制器,但我无法弄清楚如何获得它.
有什么想法吗?
我有一个使用导航控制器的XCode iPad项目.我试图获得一个按钮将UISplitViewController推送到导航堆栈,但是出现了这个错误:
拆分视图控制器无法推送到导航控制器
原来UISplitViewController不能很好地与UINavigationController一起使用.但是,单击此按钮时,我仍需要显示拆分视图控制器.我该怎么做呢?而且,同样重要的是,如何制作一个后退按钮,以便用户可以返回到导航控制器?
我有简单的xcode项目,它只是用于iPad的"Master-Detail Application"模板.当设备处于纵向方向时,主视图将被隐藏,当您在详细视图上向右滑动时,将显示主视图.现在,我想向细节视图添加右滑动手势识别器,如下所示:
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
[self configureView];
UISwipeGestureRecognizer *gestureRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeHandler)];
[self.view addGestureRecognizer:gestureRecognizer];
}
-(void)swipeHandler{
NSLog(@"SWIPE");
}
Run Code Online (Sandbox Code Playgroud)
但是这段代码导致当我在详细视图上滑动时,"SWIPE"日志出现在控制台中,但主视图不会显示.
如何向细节视图添加右滑动手势识别器,因此它不会阻止主视图显示,我的识别器处理程序将工作?
提前致谢.
编辑.我希望我的右侧滑动识别器处理程序与此内置的一个同时工作,它显示主视图,但以下代码不是针对此特定情况的解决方案:
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer{
return YES;
}
Run Code Online (Sandbox Code Playgroud) 我在XCode 4.2中创建了一个新的基于拆分视图的项目
然后在DetailViewController.m文件中我添加了这个方法
- (BOOL)splitViewController: (UISplitViewController*)svc shouldHideViewController:(UIViewController *)vc inOrientation:(UIInterfaceOrientation)orientation
{
//This method is only available in iOS5
return NO;
}
Run Code Online (Sandbox Code Playgroud)
现在通过这样做,我可以一次显示我的splitview控制器的左右两部分.
现在我已经UIBarButtonItem在我的DetailViewController导航栏中添加了一个,我希望通过使用它可以在Portrairt和Landscape模式中隐藏和显示我的主视图.
- (IBAction)hideUnhide:(id)sender
{
//How can hide & unhide
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
每当我尝试以模态方式呈现UISplitViewController时,应用程序崩溃.因此,它必须始终是根视图控制器.任何人都可以证实吗?
我有一个具有登录屏幕的应用程序,当用户登录时,会按下标签栏控制器.我目前有一些观点可以从苹果现在允许在所有iOS设备中使用拆分视图控制器的事实中受益,所以当我读到UISplitViewController必须始终是根视图控制器时,我正准备实现这一点.所以我想知道是否可以使用UISplitViewController使其中一个选项卡中的视图成为主 - 详细视图,还是需要手动实现?
如果无法将拆分视图显示为选项卡,是否可以从标签栏控制器中推送?(例如,用户在表视图中点击一行,并显示主 - 详细视图).
在iPad上使用UISplitViewController时,在根视图和细节视图之间有一条黑色的垂直分隔线.有没有办法删除这一行?
谢谢
在iOS 8中,视图控制器现在可以调用showDetailViewController:sender:以让系统确定正确的视图控制器以呈现详细视图控制器.
在我的应用程序中,我有一个UISplitViewController,它的viewControllers数组中包含两个UINavigationControllers.第一个UINavigationController包含我的"主"视图,UITableViewController的子类.第二个UINavigationController包含我的"详细信息"视图.
因为我试图使这项工作普遍,我试图showDetailViewController:sender:用来显示详细信息视图:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
self.itemVC.item = self.itemStore.items[indexPath.row];
[self showDetailViewController:self.itemVC sender:self];
}
Run Code Online (Sandbox Code Playgroud)
这适用于水平紧凑特性(iPhone风格)时self.splitViewController.collapsed == YES,但不适用于特性为常规(iPad,未折叠)时.在iPad上,它用细节视图控制器替换细节UINavigationController(而不是替换UINavigationController的viewControllers数组).
为了解决这个问题,我已经测试了它是否已经崩溃,如果不是,我会在显示它之前将详细视图控制器包装在另一个UINavigationController中:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
self.itemVC.item = self.itemStore.items[indexPath.row];
UIViewController *vcToShow;
// For whatever reason, when not collapsed, showDetailViewController replaces the detail view, doesn't push onto it.
if (self.splitViewController.collapsed) {
vcToShow = self.itemVC;
} else {
vcToShow = [[UINavigationController alloc] initWithRootViewController:self.itemVC];
}
[self showDetailViewController:vcToShow sender:self];
}
Run Code Online (Sandbox Code Playgroud)
我想或者我可以配置self.itemVC并避免showDetailViewController:sender:在self.splitViewController.collapsed == …
objective-c uinavigationcontroller uisplitviewcontroller ios ios8