我有一个基于Tab Bar的应用程序。当用户点击按钮时,我试图显示如下视图:
+----------------------------+
| |Cancel| Title |Done| |
+----------------------------+
| |
| ... |
+----------------------------+
在IB下,代码具有以下层次结构:
+ 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不允许我使导航控制器成为视图连接(我只能使View视图连接)。
答案 0 :(得分: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];
答案 1 :(得分:0)
我正在使用齿轮错误:如果我使用带有导航栏和Picker View的UIViewController,事情就会按预期工作。我不应该使用导航控制器。
所以我的观点如下:
+ File's Owner
+ First Responder
+ View
+ Picker
+ Nav Bar
+ Nav Item
+ Bar Button
+ Bar Button