我正在尝试创建一个iPad / iPhone应用程序,它根据从RESTful API返回的JSON对象动态创建菜单。具体来说,我试图显示/隐藏我使用界面构建器创建的UIPickerView。在界面构建器的属性菜单中,我选中了UIPickerView的“隐藏”框。我用这个tutorial来创建UIPickerView。我已使用界面构建器将委托和数据源设置到View Controller。我想在满足某个条件时取消隐藏/显示UIPickerView。到目前为止,我已经尝试了以下代码:
[self.choicePicker setHidden:NO];
self.choicePicker.hidden = NO;
我通常以编程方式构建这样的对象,但我想我会这样尝试。我正在浏览各种stackoverflow帖子并进行研究,但我似乎找不到有用的东西。我是Objective C中的新编程。在此之前,我们非常感谢任何帮助。
.h文件代码
@interface slrpViewController : UIViewController<UITextFieldDelegate, UIPickerViewDelegate, UIPickerViewDataSource>
{
IBOutlet UIPickerView *picker_choice;
NSMutableArray *dataArray;
NSMutableData *receivedData;
}
@property(nonatomic, strong) UILabel *nameLabel;
@property(nonatomic, retain) UIPickerView *choicePicker;
.m文件代码
-(void)buildChoicesMenu:(NSDictionary *)choiceDict{
//in this method we build the choices menu
[self.choicePicker setHidden:NO];
self.choicePicker.hidden = NO;
if (self.choicePicker) self.choicePicker.hidden = !self.choicePicker.hidden;
}
答案 0 :(得分:1)
您定义了两个不同的选择器视图。一个是属性choicePicker
(和一个隐式_choicePicker
实例变量),另一个是实例变量picker_choice
。您似乎已在界面构建器中连接了picker_choice
,但正在尝试修改该属性。实际上,如果您尝试在调试器中打印po self.choicePicker
,则会得到nil
,因为没有任何内容填充它。
删除实例变量,并在界面构建器中连接属性,或者通过这样做将属性与实例变量合成:
@syntesize choicePicker=picker_choice