2011-06-25 116 views
0

在Xcode 4中,我創建了一個SplitView項目,所以我有一個DetailViewController和一個RootViewController。無法關閉RootViewController

在RootViewController的的viewDidLoad(),當顯示RootViewController的,我點擊取消按鈕,我已經添加在左側的取消按鈕這樣

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

,我想關閉RootViewController的。在我的cancelButton處理程序中,我試過撥打電話

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

但它們都不適用於我。我嘗試了幾個小時的Google搜索,但仍未找到解決方案。

有人可以告訴我如何關閉RootViewController嗎?

感謝您的幫助

回答

0

我假設你正在試圖關閉RootViewController的的酥料餅在縱向,因爲它的風景沒有意義。

你可以這樣說:

1)取消按鈕處理程序:

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

2)popoverController是detailViewController私人所以你必須把它公開(或添加方法的DetailView,將有訪問popoverController財產和cancelAction在RootViewController的調用此方法):

2.1)刪除

@property (nonatomic, retain) UIPopoverController *popoverController; 

@interface DetailViewController() 
... 
@end 

2.2)添加

@property (nonatomic, retain) UIPopoverController *popoverController; 

內部

@interface DetailViewController : UIViewController