2010-02-12 1 views
2

У меня есть xib, в котором я добавил UIViewController с именем delta. Вид под дельта контролируется контроллером delta view, а не владельцем файла. На дельта-представлении у меня есть UIViewPicker. Моя проблема в том, что я программирую в UIPickerView в deltaviewcontroller, и я выдаю deltaviewcontroller в качестве делегата и источника данных для UIPickerView. Все должно работать, но когда я загружаю представление deltaviewcontroller, приложение выходит из строя. Если я выполняю все так же, как и у владельца файла, он отлично работает. Мне интересно, есть ли способ сделать работу UIPickerView с UIViewController и не обязательно владельцем файла.iPhone 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 

Пожалуйста, укажите, если я делаю что-то неправильно. Помощь очень ценится.

+0

Этот код выглядит нормально, кроме того, что вы пропускаете строку «item». Какова фактическая ошибка/исключение, которое вы получаете? Можете ли вы описать и показать код для загрузки/отображения контроллера треугольника? – gerry3

+1

Откройте консоль в меню «Выполнить» и сообщите нам об ошибке, которую вы получаете – willcodejavaforfood

+0

. Какая авария вы получили? – kennytm

ответ

2

Если вы ищете, как добавить UIPickerView в UIView, просто проверьте образец кода Apple для UIPickerView. Я думаю, что это один из лучших способов научиться правильно использовать разные классы. Существует пять проектов, которые включают UIPickerView. Вот ссылка

UIPickerView class reference and sample code

0

Попробуйте сделать [self.view addSubview: pickerView]; в вашем методе просмотраDidLoad.