У меня есть 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
Пожалуйста, укажите, если я делаю что-то неправильно. Помощь очень ценится.
Этот код выглядит нормально, кроме того, что вы пропускаете строку «item». Какова фактическая ошибка/исключение, которое вы получаете? Можете ли вы описать и показать код для загрузки/отображения контроллера треугольника? – gerry3
Откройте консоль в меню «Выполнить» и сообщите нам об ошибке, которую вы получаете – willcodejavaforfood
. Какая авария вы получили? – kennytm