0

我有一個標籤欄的應用程序。當用戶點擊一個按鈕,我試圖顯示如下所示的圖:導航欄視圖爲模態視圖?

+----------------------------+ 
| |Cancel| Title |Done| | 
+----------------------------+ 
|       | 
|    ...   | 
+----------------------------+ 

在圖1B中,代碼具有下列層次結構:

+ File's Owner 
+ First Responder 
+ Nav Controller 
    + Nav Bar 
    + View Controller 
    + View 
    + Nav Item 
     + Bar Button 
     + Bar Button 

使View相等節點到Nav Controller沒有幫助。所以我離開View作爲Nav Controller的子節點。

當按鈕被竊聽,我撥打以下:

FilePicker* picker = [[FilePicker alloc] init]; 
[self presentModalViewController:picker animated:YES]; 

爲了完整起見,這裏是FilePicker的聲明(應有移除故障排除額外的部件)。添加/刪除UINavigationControllerDelegate沒有幫助。

@interface FilePicker : UIViewController 
    <UIPickerViewDelegate, UIPickerViewDataSource> 
{ 
    UINavigationController* navController; 
} 

@property (retain, nonatomic) IBOutlet UINavigationController* navController; 

不幸的是,我得到的只是空白視圖(其他小部件在故障排除期間已被刪除)。我如何強制顯示導航控制器? IB不允許我將導航控制器設置爲視圖連接(我只能創建視圖連接)。

傑夫

回答

0

我用的齒輪錯誤:如果我使用了導航欄和選擇器查看一個UIViewController,一切按預期工作。我不應該使用導航控制器。

所以我的看法如下:

+ File's Owner 
+ First Responder 
+ View 
    + Picker 
    + Nav Bar 
    + Nav Item 
     + Bar Button 
     + Bar Button 
1

呈遞您的模態的視圖之前,創建導航控制器對象設定根控制器到您filepicker視圖。然後將導航控制器顯示爲模式視圖。 (抱歉格式...編輯器中的格式按鈕不顯示)

PickerView *pv = [[PickerView alloc] initWithNibName:@"PickerView" bundle:nil]; 
pv.ivar1 = value1; 

UINavigationController *nc = [[UINavigationController alloc] initWithRootViewController:pv]; 

[self.tabBarController presentModalViewController:nc animated:YES]; 
[nc release]; 
[pv release]; 
+0

我用的齒輪錯誤:如果我使用一個UIViewController有一個導航欄和選擇器視圖,工作的事情如預期。我應該*不*嘗試使用導航控制器。 – jww 2011-03-23 23:19:04