无法关闭RootViewController

时间:2011-06-25 20:54:47

标签: uisplitviewcontroller

在Xcode 4中我创建了一个SplitView项目,所以我有一个DetailViewController和一个RootViewController。

在RootViewController的viewDidLoad()中,我在左侧添加了一个取消按钮

// add a cancel button on the left side
cancelButton = [[[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemCancel 
                                                             target:self action:@selector(cancelAction:)] autorelease];
self.navigationItem.leftBarButtonItem = cancelButton;

当显示RootViewController并单击取消按钮时,我想关闭RootViewController。在我的cancelButton处理程序中,我试过调用

#if 0
    [self dismissModalViewControllerAnimated:YES];
#else   
    [self.navigationController popViewControllerAnimated:YES];
#endif

但他们中的任何一个都不适合我。我已经尝试谷歌搜索了几个小时,但仍然没有找到解决方案。

有人可以告诉我如何关闭RootViewController吗?

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

我假设您正试图以纵向方向关闭RootViewController的弹出窗口,因为在横向上它没有意义。

你可以这样做:

1)取消按钮处理程序:

-(void)cancelAction {
    [self.detailViewController.popoverController dismissPopoverAnimated:YES];
}

2)popoverController在detailViewController中是私有的,所以你必须将它公开(或者向detailview添加方法,该方法可以访问popoverController属性并从RootViewController中的cancelAction调用此方法):

2.1)删除

@property (nonatomic, retain) UIPopoverController *popoverController;

@interface DetailViewController ()
...
@end

2.2)添加

@property (nonatomic, retain) UIPopoverController *popoverController;

@interface DetailViewController : UIViewController