2010-02-12 74 views
2

我有一个xib,我在其中添加了一个名为delta的UIViewController。 delta下的视图由delta视图控制器控制,而不是文件所有者。在三角洲视图,我有一个UIViewPicker。我的问题是,我在编程UIPickerViewdeltaviewcontroller,我发行deltaviewcontroller作为UIPickerView的代表和数据源。一切都应该工作,但是当我加载deltaviewcontroller的视图时,应用程序崩溃。如果我在文件的所有者视图下以相同的方式执行所有操作,则它可以正常工作。我想知道是否有一种方法可以使UIPickerView与UIViewController一起工作,并且不一定是文件的所有者。UIViewController中的iPhone UIPickerView

对于引用,代码:

页眉

@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 

请指出,如果我做错什么。非常感谢帮助。

+0

除了您泄漏“item”字符串之外,此代码看起来不错。你遇到的实际崩溃/异常是什么?你能描述并显示加载/显示delta视图控制器的代码吗? – gerry3 2010-02-12 07:09:04

+1

从运行菜单打开控制台并告诉我们您收到的错误 – willcodejavaforfood 2010-02-12 09:05:19

+0

您收到了什么崩溃? – kennytm 2010-02-12 11:24:12

回答

2

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

UIPickerView class reference and sample code

0

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