2010-12-08 1 views

答えて

1

TableViewCellに何も渡しません。代わりに、あなたはにtableViewを移入する

を実装する必要があります。そして、ピッカーのための

+0

ところで:それは – vikingosegundo

+0

スクロールに来る場合、私は、私は、各セルにpickerviewsを持っているか、実行する方法があることを考慮すると、テーブルビューのセルクラスにピッカーのデリゲートとデータソースを配置する必要があり、細胞の内部ピッカーは非常に十分に機能しないかもしれませんそれはtableviewクラスです。 tableviewクラスのpickerviewデリゲートの場合、pickerviewsに別のデータをどのように設定しますか? –

+0

いいえ、彼らは確かに細胞に属していません。 [TableViewプログラミングガイド](http://developer.apple.com/library/ios/#documentation/UserExperience/Conceptual/TableView_iPhone/AboutTableViewsiPhone/AboutTableViewsiPhone.html%23//apple_ref/doc/uid/TP40007451) – vikingosegundo

0

テーブルセル内にpickerviewデリゲートとデータソースが含まれていて、正常に動作しています... 配列の受け渡しはどのビューと同じです。

//////////////ScrollCell.h 

@interface ScrollCell : UITableViewCell <UIPickerViewDataSource, UIPickerViewDelegate>{ 
    UILabel *textlabel; 
    UIPickerView *pickerview; 

    NSString *textfieldValue; 
    NSString *scrollerValue; 
    NSArray *scrollerData; 
} 
@property (nonatomic,retain)UILabel *textlabel; 
@property (nonatomic,retain)UIPickerView *pickerview; 
@property (nonatomic,retain)NSArray *scrollerData; 

@property (nonatomic,retain)NSString *textfieldValue; 
@property (nonatomic,retain)NSString *scrollerValue; 


-(NSString *)getTextfiledValue; 
-(NSString *)getScrollerValue; 
-(void)setScrollerData:(NSArray *)array; 
@end 


/////////ScrollerCell.m 

// 
// ScrollCell.m 
// MultipleDetailViews 
// 
// Created by Ruslan Karimov on 12/5/10. 
// Copyright 2010 Eventagrate. All rights reserved. 
// 

#import "ScrollCell.h" 
#import "Answers.h" 

@implementation ScrollCell 
@synthesize textlabel, pickerview, scrollerData, textfieldValue, scrollerValue; 
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { 



    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; 
    if (self) { 
     textlabel = [[UILabel alloc]init]; 
     textlabel.textAlignment = UITextAlignmentLeft; 
     textlabel.font = [UIFont systemFontOfSize:25]; 
     textlabel.textColor =[UIColor blackColor]; 
     [self.contentView addSubview:textlabel]; 

     pickerview = [[UIPickerView alloc]init]; 
     [self.contentView addSubview:pickerview]; 

     scrollerData = [[NSArray alloc] init]; 

    } 
    return self; 
} 


- (void)setSelected:(BOOL)selected animated:(BOOL)animated { 

    [super setSelected:selected animated:animated]; 

    CGRect contentRect = self.contentView.bounds; 
    CGFloat boundsX = contentRect.origin.x; 
    CGRect frame; 


    frame= CGRectMake(boundsX+10 ,+10, 300, 25); 
    textlabel.frame = frame; 

    //frame= CGRectMake(boundsX+200 ,0, 300, 100); 
    self.pickerview.frame = CGRectMake(boundsX+200 ,0, 300, 163); 

    self.pickerview.delegate = self; 
    //self.pickerview. 

} 

-(void)setScrollerData:(NSArray *)array 
{ 
    //[self.scrollerData arrayByAddingObjectsFromArray:array]; 
    scrollerData = array; 
    NSLog(@"from scrolltable cell: %i",[self.scrollerData count]); 
} 

-(NSString *)getTextfiledValue 
{ 
    return self.textfieldValue; 
} 
-(NSString *)getScrollerValue 
{ 
    return self.scrollerValue; 
} 

//PICKER VIEW CONTROL 

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

- (NSString *)pickerView:(UIPickerView *)thePickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component 
{ 
    Answers *template = (Answers *)[self.scrollerData objectAtIndex:row]; 
    return template.answer_title; 
    //return @"fff"; 
} 

- (void)pickerView:(UIPickerView *)thePickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component { 


} 


- (void)dealloc { 
    [super dealloc]; 
} 


@end 
+0

質問を回答として投稿するのではなく、元の質問を編集してください。 – vikingosegundo

+0

このコードは、ビューがコントローラに属するロジックで埋め込まれているため、MVCに違反します。また、それはどんなメンバーも解放しないので、漏れている。 – vikingosegundo

+0

アドバイスのためにvikingosgundoに感謝します。ほんとうにありがとう –

関連する問題