UIViewController中的iPhone UIPickerView
我有一个xib,其中添加了一个名为delta的UIViewController中的iPhone UIPickerView,iphone,uiview,sdk,uiviewcontroller,uipickerview,Iphone,Uiview,Sdk,Uiviewcontroller,Uipickerview,我有一个xib,其中添加了一个名为delta的UIViewController。delta下的视图由delta viewcontroller控制,而不是由文件所有者控制。在增量视图上,我有一个UIViewPicker。我的问题是我正在UIPickerView中的deltaviewcontroller中编程,并且我正在发布deltaviewcontroller作为UIPickerView的代理和数据源。一切都应该正常,但是当我加载deltaviewcontroller的视图时,应用程序崩溃了。如果
UIViewController
。delta下的视图由delta viewcontroller控制,而不是由文件所有者控制。在增量视图上,我有一个UIViewPicker
。我的问题是我正在UIPickerView
中的deltaviewcontroller
中编程,并且我正在发布deltaviewcontroller
作为UIPickerView
的代理和数据源。一切都应该正常,但是当我加载deltaviewcontroller的视图时,应用程序崩溃了。如果我在文件的所有者视图下以相同的方式执行所有操作,那么效果很好。我想知道是否真的有办法让UIPickerView与UIViewController
一起工作,而不一定是文件的所有者
参考代码如下:
标题
@interface DeltaViewController : UIViewController <UIPickerViewDelegate, UIPickerViewDataSource> {
NSMutableArray *arrayNo;
IBOutlet UIPickerView *pickerView;
}
@property (nonatomic, retain) UIPickerView *pickerView;
@property (nonatomic, retain) NSMutableArray *arrayNo;
@end
@接口DeltaViewController:UIViewController{
NSMutableArray*arrayNo;
IBUIPickerView*pickerView;
}
@属性(非原子,保留)UIPickerView*pickerView;
@属性(非原子,保留)NSMUTABLEARRY*arrayNo;
@结束
实施
#import "DeltaViewController.h"
@implementation DeltaViewController
@synthesize pickerView;
@synthesize arrayNo;
- (void)viewDidLoad
{
NSMutableArray *dollarsArray = [[NSMutableArray alloc] init];
for (int i = 0; i < 100; i++)
{
NSString *item = [[NSString alloc] initWithFormat:@"%i", i];
[dollarsArray addObject:item];
}
self.arrayNo = dollarsArray;
[dollarsArray release];
}
#pragma mark -
#pragma mark Picker Data Source Methods
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
return 1;
}
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
return [arrayNo count];
}
#pragma mark Picker Delegate Methods
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
return [arrayNo objectAtIndex:row];
}
- (void)dealloc {
[arrayNo release];
[pickerView release];
[super dealloc];
}
@end
#导入“DeltaViewController.h”
@DeltaViewController的实现
@合成pickerView;
@合成arrayNo;
-(无效)viewDidLoad
{
NSMutableArray*DollarArray=[[NSMutableArray alloc]init];
对于(int i=0;i<100;i++)
{
NSString*项=[[NSString alloc]initWithFormat:@“%i”,i];
[DollarArray addObject:item];
}
self.arrayNo=dollarsArray;
[阵列释放];
}
#布拉格标记-
#pragma标记选择器数据源方法
-(NSInteger)pickerView中组件的编号:(UIPickerView*)pickerView
{
返回1;
}
-(NSInteger)pickerView:(UIPickerView*)pickerView行数组件:(NSInteger)组件
{
返回[arrayNo count];
}
#pragma标记选择器委托方法
-(NSString*)pickerView:(UIPickerView*)pickerView标题箭头:(NSInteger)组件行:(NSInteger)组件
{
返回[arrayNo objectAtIndex:row];
}
-(无效)解除锁定{
[arrayNo释放];
[pickerView发布];
[super dealoc];
}
@结束
如果我做错了什么,请指出。非常感谢你的帮助 如果您搜索如何在UIView中添加UIPickerView,只需查看UIPickerView的Apple示例代码。我认为这是学习正确使用不同课程的最好方法之一。有五个项目包括一个UIPickerView。这是链接 试着去做 [self.view addSubview:pickerView];
在viewDidLoad方法中。除了泄漏“item”字符串之外,此代码看起来正常。您得到的实际崩溃/异常是什么?您能描述和显示加载/显示delta view控制器的代码吗?从运行菜单打开控制台,告诉我们您遇到的错误