2

UIViewController名前付きデルタを追加したxibがあります。デルタ下のビューは、ファイルの所有者ではなく、デルタ ビューコントローラーによって制御されます。デルタ ビューには、UIViewPicker. 私の問題は、 でプログラミングしてUIPickerViewおり、 のデリゲートおよびデータ ソースとしてdeltaviewcontroller発行していることです。すべてが機能するはずですが、deltaviewcontroller のビューをロードすると、アプリケーションがクラッシュします。ファイルの所有者ビューですべてを同じ方法で実行すると、問題なく動作します。UIPickerViewをファイルの所有者と連携させる方法が実際にあるのかどうか疑問に思っています。deltaviewcontrollerUIPickerViewUIViewController

参考までに、コードは次のとおりです。

ヘッダ

@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 を追加する方法を検索する場合は、UIPickerView の Apple サンプル コードを確認してください。これは、さまざまなクラスを正しく使用することを学ぶための最良の方法の 1 つだと思います。UIPickerView を含む 5 つのプロジェクトがあります。リンクはこちら

UIPickerView クラスのリファレンスとサンプル コード

于 2010-02-12T11:38:05.530 に答える
0

[self.view addSubview:pickerView]; を実行してみてください。あなたのviewDidLoadメソッドで。

于 2011-08-30T14:22:03.320 に答える