我想实现一个场景,在第一个表视图控制器上单击表单上的标签时,会打开另一个表视图控制器,它为我提供了一个可以为该标签选择的选项列表。示例:如果第一个表视图控制器上的标签为“Gender”,则单击其旁边的箭头应打开另一个表视图控制器,其中行为男性,女性。
第一个控制器是编辑配置文件,其中我有以下代码:
- (IBAction)btndrpSelect_Click:(id)sender {
DropDownViewController *secondView = [[DropDownViewController alloc] initWithNibName:@"DropDownViewController" bundle:nil];
self.GenderArray = [NSMutableArray arrayWithObjects: @"Male", @"Female", nil];
secondView.drpOptions = self.GenderArray;
UINavigationController *passcodeNavigationController = [[UINavigationController alloc] initWithRootViewController:secondView];
[self.navigationController pushViewController:passcodeNavigationController animated:YES];
}
通用下拉表视图控制器具有以下代码:
.h文件:
@interface DropDownViewController : UITableViewController
{
NSMutableArray *drpOptions;
}
@property(nonatomic,retain)NSMutableArray *drpOptions;
@end
.m文件:
int count = [drpOptions count];
for (int i = 0; i < count; i++)
NSLog (@"Element %i = %@", i, [drpOptions objectAtIndex: i]);
当我点击第一个视图控制器上的按钮时,我希望屏幕翻转并显示下拉选项,但它会退出并显示错误。请指导。
由于
答案 0 :(得分:0)
如果没有看到堆栈跟踪和错误代码,我无法回答您的问题。但是,通过查看您的代码,我可以看到您尝试将一个导航控制器推到另一个上。这将导致抛出错误。删除这行代码:
UINavigationController *passcodeNavigationController = [[UINavigationController alloc] initWithRootViewController:secondView];
并将pushViewController代码更改为:
[self.navigationController pushViewController:secondView animated:YES];
在您未来的编程工作中,密切关注错误代码;他们通常可以很有帮助。你的错误应该说&#34;推送NavigationController不支持&#34;这是非常有用的信息,应该是Google的第一件事。