我有一个 xib,其中添加了一个名为 delta 的 UIViewController。 delta 下的 View 由 delta viewcontroller 控制,而不是由文件所有者控制。在增量 View 上,我有一个 UIViewPicker。我的问题是,我正在 deltaviewcontroller
中的 UIPickerView
中进行编程,并且我发出 deltaviewcontroller
作为 的委托(delegate)和数据源>UIPickerView
。一切都应该正常,但是当我加载 deltaviewcontroller 的 View 时,应用程序崩溃了。如果我在文件所有者 View 下以相同的方式执行所有操作,则效果很好。我想知道是否真的有一种方法可以使 UIPickerView 与 UIViewController 一起工作,而不必与文件的所有者一起工作。
供引用,代码:
标题
@interface DeltaViewController : UIViewController <UIPickerViewDelegate, UIPickerViewDataSource> {
NSMutableArray *arrayNo;
IBOutlet UIPickerView *pickerView;
}
@property (nonatomic, retain) UIPickerView *pickerView;
@property (nonatomic, retain) NSMutableArray *arrayNo;
@end
实现
#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
如果我做错了什么,请指出。非常感谢您的帮助。
最佳答案
如果您搜索如何在 UIView 中添加 UIPickerView,只需查看 UIPickerView 的 Apple 示例代码。我认为这是学习正确使用不同类的最佳方法之一。有五个项目包含 UIPickerView。这是链接
关于iPhone UIViewController 中的 UIPickerView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2250063/