2

我有一个 xib,我在其中添加了一个UIViewController命名的 delta。delta 下的视图由 delta viewcontroller 控制,而不是文件所有者。在 delta 视图中,我有一个UIViewPicker. 我的问题是我在 in 中进行编程,UIPickerView并且deltaviewcontrollerdeltaviewcontroller作为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

执行

#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

请指出我做错了什么。非常感谢您的帮助。

4

2 回答 2

2

如果您搜索如何在 UIView 中添加 UIPickerView,只需查看 Apple 的 UIPickerView 示例代码。我认为这是学习正确使用不同课程的最佳方法之一。有五个项目包括一个 UIPickerView。这是链接

UIPickerView 类参考和示例代码

于 2010-02-12T11:38:05.530 回答
0

尝试做 [self.view addSubview:pickerView]; 在您的 viewDidLoad 方法中。

于 2011-08-30T14:22:03.320 回答