Ios 如何在适用于iPad的UISplitViewController中隐藏MasterViewController
我正在使用Ios 如何在适用于iPad的UISplitViewController中隐藏MasterViewController,ios,objective-c,ipad,uisplitviewcontroller,ios7.1,Ios,Objective C,Ipad,Uisplitviewcontroller,Ios7.1,我正在使用UISplitViewController,我需要隐藏在那里 MasterViewController用于第一个DetailViewController。意味着,当应用程序 启动时,必须隐藏MasterViewController,而无需单击 任意ui按钮。我尝试在内部使用UISplitViewController UIViewControllers。但什么也没发生。之后,我尝试在UISplitViewController中开发整个应用程序。下面是我试图隐藏的代码MasterViewC
UISplitViewController
,我需要隐藏在那里
MasterViewController
用于第一个DetailViewController
。意味着,当应用程序
启动时,必须隐藏MasterViewController
,而无需单击
任意ui按钮
。我尝试在内部使用UISplitViewController
UIViewControllers
。但什么也没发生。之后,我尝试在UISplitViewController
中开发整个应用程序。下面是我试图隐藏的代码MasterViewController
我已经花了一周的时间做这件事,但没有任何效果。请提供
解决方案。非常荣幸
更新:
好的,隐藏主视图控制器已经完成。但是当我将委托设置为
局部视图控制器,它隐藏所有视图的主视图控制器
控制器。这是我要添加的appDelegate代码
UISplitViewController
在这里,我将splitViewController的委托设置为detailVC.In
带有Nex Mishra代码的detailViewController我正在隐藏主视图
控制器,当我从detailVC导航到其他视图时,它会隐藏
主视图控制器。我知道这会很烦人,但会的
要有帮助
可以使用此委托方法隐藏主VC
- (BOOL)splitViewController:(UISplitViewController *)svc shouldHideViewController:(UIViewController *)vc inOrientation:(UIInterfaceOrientation)orientation
{
//Add your own logic to when you want the master VC hidden.
return YES;
}
确保将SplitViewController委托设置为放置此代码的控制器,否则将不会调用此委托方法。感谢Ste Prescott。它只在AppDelegate中起作用。如何在ViewController中实现它以及在何处实现它。您可以举个例子吗?您可以在任何引用了拆分视图控制器的控制器中实现它。就像@Nex Mishra所说的,不要将它放在您的应用程序委托中。@BogdanSomlea for ipad。它在AppDelegate.h中添加时起作用。它隐藏了整个应用程序的MasterViewController。但是,当我们只想隐藏特定的视图控制器时该怎么办。你不必在应用程序代理中声明它,你只需在视图控制器中添加这些行,你想隐藏主视图。要隐藏,你只需转到视图就会出现并执行svc.presentswith手势=否;非常感谢@nex Mishra。嘿,它仍然隐藏所有视图控制器的主视图。如果我在app delegate中将delegate设置为detail view controller,它将隐藏所有视图控制器的主视图控制器。我正在更新我的问题。请看一下。
self.splitViewController =[[UISplitViewController alloc]init];
MasterTableViewController *masterViewController=[[MasterTableViewController alloc]initWithNibName:@"MasterTableViewController" bundle:nil];
UINavigationController *masterNavigate=[[UINavigationController alloc]initWithRootViewController:masterViewController];
DetailViewController *detailVC=[[DetailViewController alloc]initWithNibName:@"DetailViewController" bundle:nil];
UINavigationController *detailNavigate=[[UINavigationController alloc]initWithRootViewController:detailVC];
self.splitViewController.viewControllers=[NSArray arrayWithObjects:masterNavigate,detailNavigate, nil];
self.splitViewController.delegate=detailVC;
self.window.rootViewController=self.splitViewController;
- (BOOL)splitViewController:(UISplitViewController *)svc shouldHideViewController:(UIViewController *)vc inOrientation:(UIInterfaceOrientation)orientation
{
//Add your own logic to when you want the master VC hidden.
return YES;
}
- (BOOL)splitViewController:(UISplitViewController*)svc
shouldHideViewController:(UIViewController *)vc
inOrientation:(UIInterfaceOrientation)orientation
{
// this commant is used for showing or hiding the split view controller
svc.presentsWithGesture = TRUE;
return YES;
}
// dont forget to assign the delegate like this in viewWillAppear
(self.splitViewController.delegate = self;)