Ipad 如何在UISplitView中隐藏主视图

Ipad 如何在UISplitView中隐藏主视图,ipad,Ipad,我试图在横向模式下在UISplitView中隐藏主视图。这是我想做的一个按钮点击。在我的导航栏中,我点击了一个按钮,我想在横向模式下隐藏主视图。此外,如果主视图是隐藏的,则单击同一按钮时,主视图应显示回来。所有这些都需要在主视图中完成。我提到了以下函数 -(BOOL)splitViewController:(UISplitViewController *)svc shouldHideViewController:(UIViewController *)vc inOrientation:(UIIn

我试图在横向模式下在UISplitView中隐藏主视图。这是我想做的一个按钮点击。在我的导航栏中,我点击了一个按钮,我想在横向模式下隐藏主视图。此外,如果主视图是隐藏的,则单击同一按钮时,主视图应显示回来。所有这些都需要在主视图中完成。我提到了以下函数

-(BOOL)splitViewController:(UISplitViewController *)svc shouldHideViewController:(UIViewController *)vc inOrientation:(UIInterfaceOrientation)orientation
{
return YES;
}
但它在视图加载时隐藏主视图,尽管单击了按钮。下面是我的详细视图代码

- (void)setDetailItem:(id)newDetailItem {
if (detailItem != newDetailItem) {
[detailItem release];
detailItem = [newDetailItem retain];

        // Update the view.
        NSLog(@"Detail item in detail view::%@",detailItem);
        NSString *imageName = [NSString stringWithFormat:@"%@.jpg",[detailItem description]];
        NSLog(@"Image name is::%@",imageName);
        self.imageToDisplay.image = [UIImage imageNamed:imageName];
        [self configureView];
    }

    if (mainpopover != nil) {
        [mainpopover dismissPopoverAnimated:YES];
    }        
}

- (void)configureView 
{
    // Update the user interface for the detail item.  
    detailDescriptionLabel.text = [detailItem description];

    openInButton = [[UIBarButtonItem alloc] initWithTitle:@"OpenIn" style:UIBarButtonItemStyleDone target:self action:@selector(openIn)];
    favoritesButton = [[UIBarButtonItem alloc] initWithTitle:@"*" style:UIBarButtonItemStyleDone target:self action:@selector(markFavorite)];
    emailButton = [[UIBarButtonItem alloc] initWithTitle:@"E" style:UIBarButtonItemStyleDone target:self action:@selector(emailFile)];
    uploadButton = [[UIBarButtonItem alloc] initWithTitle:@"#" style:UIBarButtonItemStyleDone target:self action:@selector(uploadFile)];

    self.navigationItem.rightBarButtonItems = [NSArray arrayWithObjects:openInButton, favoritesButton,emailButton, uploadButton, nil];
}

#pragma mark -
#pragma mark Split view support

-(void)splitViewController:(UISplitViewController *)svc willHideViewController:(UIViewController *)aViewController withBarButtonItem:(UIBarButtonItem *)barButtonItem forPopoverController:(UIPopoverController *)pc
{
    barButtonItem.title = @"Quicksync";
    self.navigationItem.leftBarButtonItem = barButtonItem;
    self.mainpopover = pc;
}

// Called when the view is shown again in the split view, invalidating the button and popover controller.
-(void)splitViewController:(UISplitViewController *)svc willShowViewController:(UIViewController *)aViewController invalidatingBarButtonItem:(UIBarButtonItem *)barButtonItem
{
    myBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"<" style:UIBarButtonItemStyleDone target:self action:@selector(hideMasterScreen)];
    self.navigationItem.leftBarButtonItem = myBarButtonItem;
    self.mainpopover = nil;
}

// Called when the hidden view controller is about to be displayed in a popover.
- (void)splitViewController:(UISplitViewController*)svc popoverController:(UIPopoverController*)pc willPresentViewController:(UIViewController *)aViewController
{
    // Check to see if the popover presented from the "Tap" UIBarButtonItem is visible.
    if ([barButtonItemPopover isPopoverVisible]) {
        // Dismiss the popover.
        [barButtonItemPopover dismissPopoverAnimated:YES];
    } 
}


-(BOOL)splitViewController:(UISplitViewController *)svc shouldHideViewController:(UIViewController *)vc inOrientation:(UIInterfaceOrientation)orientation
{
    return YES;
}
-(void)setDetailItem:(id)newDetailItem{
if(detailItem!=newDetailItem){
[详细项目发布];
detailItem=[newDetailItem保留];
//更新视图。
NSLog(@“详细视图中的详细项目::%@”,详细项目);
NSString*imageName=[NSString stringWithFormat:@“%@.jpg”,[detailItem description]];
NSLog(@“图像名称为::%@”,图像名称);
self.imageToDisplay.image=[UIImage imageName:imageName];
[自配置视图];
}
if(mainpopover!=nil){
[mainpopover dismissPopoverAnimated:是];
}        
}
-(无效)配置视图
{
//更新详细信息项的用户界面。
detailDescriptionLabel.text=[detailItem description];
openInButton=[[uiBarButtonim alloc]initWithTitle:@“OpenIn”样式:uiBarButtonimStyleDone目标:自我操作:@selector(OpenIn)];
favoritesButton=[[UIBarButtonItem alloc]initWithTitle:@“*”样式:UIBarButtonItemStyleDone目标:自我操作:@selector(markFavorite)];
emailButton=[[UIBarButtonItem alloc]initWithTitle:@“E”样式:UIBarButtonItemStyleDone目标:自我操作:@selector(emailFile)];
uploadButton=[[UIBarButtonItem alloc]initWithTitle:@“#”样式:UIBarButtonItemStyleDone目标:自我操作:@selector(uploadFile)];
self.navigationItem.RightBarButtonims=[NSArray arrayWithObjects:openInButton、favoritesButton、emailButton、uploadButton、nil];
}
#布拉格标记-
#pragma标记分割视图支持
-(void)splitViewController:(UISplitViewController*)svc将隐藏设备控制器:(UIViewController*)带有barButtonItem的aViewController:(UIBarButtonItem*)barButtonItem for PopOvercontroller:(UIPopoverController*)pc
{
barButtonItem.title=@“Quicksync”;
self.navigationItem.leftBarButtonItem=barButtonItem;
self.mainpopover=pc;
}
//在拆分视图中再次显示视图时调用,使按钮和popover控制器无效。
-(void)splitViewController:(UISplitViewController*)svc将显示ViewController:(UIViewController*)aViewController使barButtonItem无效:(UIBarButtonItem*)barButtonItem
{

myBarButtonItem=[[UIBarButtonItem alloc]initWithTitle:@"这个隐藏方法不应该参考用户对您所说的按钮所做的操作吗?我确实尝试在它们之间建立一些连接,但都是徒劳的。所以我只是想弄清楚是否有其他方法可以做到这一点。它是一个条形按钮项,在横向模式下,当单击显示时ys主视图并将其从拆分视图中删除,使拆分视图仅包含带有主视图空间的局部视图全部为黑色我有一个类似的问题-您解决了吗。