Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/115.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
Ios 如何在适用于iPad的UISplitViewController中隐藏MasterViewController_Ios_Objective C_Ipad_Uisplitviewcontroller_Ios7.1 - Fatal编程技术网

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;)