0

コアデータでユーティリティアプリケーションテンプレートを使用しています。裏側のビューでは、ユーザーはアイテムを追加でき、これらのアイテムのブランドとモデルはメインビューのUIPickerViewにフィードします。

ユーザーがアイテムを追加すると、アプリを閉じない限り、この追加されたアイテムはピッカー行のタイトルに表示されません。

アプリを閉じずにこのタイトルを読み込むにはどうすればよいですか?ありがとう

編集してコードを追加します。

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.

    //retrieving data from iGear.xcdatamodeld
    iGearAppDelegate *iGearDelegate = [[UIApplication sharedApplication]delegate];
    NSManagedObjectContext *context = [iGearDelegate managedObjectContext];
    NSError *error;

    if (managedObjectContext !=nil) {
        if ([managedObjectContext hasChanges] && [managedObjectContext save:&error]) {
            //NSLog(@"Retrieving: unresolved error %@, %@",error, [error userInfo]);
            abort();
         }
    }

    NSFetchRequest *fetchRequest = [[NSFetchRequest alloc]init];
    NSEntityDescription *entity = [NSEntityDescription entityForName:@"Cogset"     inManagedObjectContext:context];

    [fetchRequest setEntity:entity];
    fetchedObjects = [context executeFetchRequest:fetchRequest error:&error];

//#pragma mark UIPickerView

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
    {
        return 1;
    }
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent: (NSInteger)component
 {
    return [fetchedObjects count];
 }

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
    if (component == 0) 
    {
        cogset = [fetchedObjects objectAtIndex:row];
        return [NSString stringWithFormat:@"%@ %@",cogset.brand,cogset.model];
    }
    return @"";
}

-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
    cassette = [fetchedObjects objectAtIndex:[_chooseCogsetPickerView  selectedRowInComponent:0]];
}
4

1 に答える 1

0

UIPickerViewDelegateUIPickerView にを実装する必要があります。

次に、このデリゲート関数を使用して、ピッカー ビューにデータを入力します。

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component ]
{
 return someValue;
}

現在何が起こっているかを示す実際のコードを投稿していただければ、より具体的にお手伝いできます。

于 2012-07-10T18:11:25.813 に答える