2012-03-12 15 views
4

iOS 5を使用しています。::私はカスタムセルでtableViewを作成する必要があります。 カスタムセルには、UITableViewCellのTainingCellController SubclassとNIBファイルTrainingCell.xibというコントローラがあります。親テーブルが.. TrainingControllerと呼ばれるのUIViewControllerの内側に配置されている間カスタムUITableViewCellのボタンを使用してください。

カスタムセルNIBで 今

私は真剣に疑問に思って、IBActionsまたはIBOutletsを受けるファイル所有者にそのCustomCellの関係..

ファイルを変更することができます(デフォルトではNSObjectに設定されています)。また、セル自体をクリックし、クラスをUITableViewCellからTrainingCellContrllerに変更することもできます。

これらの2つのオプションにはどのようなクラスが適していますか? IBActions & IBOutletsをどこで定義する必要がありますか(TrainingCellControllerまたはTrainingController)?

そして、もし私が "カスタムセルのラベル"をTrainingCellControllerで定義するアウトレットが必要なのであれば、ボタンアクションはTrainingControllerで定義されますか?

答えて

8

あなたのUITableViewCellのクラスをCustomCellのクラスに設定し、IBoutletCustomCellクラスに定義して接続します。

そして、あなたはあなたのViewControllerにあなたのXIBのファイルの所有者を設定します、そしてあなたにViewControllerあなたは

IBOutlet CustomCell *yourClassLevelCell; 

を宣言し、このIBOutletを接続して、あなたのXIBの今UITableViewCell

あなたがinitilizeますあなたのViewController'sメソッドcellForRowAtIndexPath内のセルを手動で追加する場合は、次のように入力します。

CustomCell *cell = (CustomCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
if (cell == nil) { 
    [[NSBundle mainBundle] loadNibNamed:@"CustomCell" owner:self options:nil]; 
    cell = yourClassLevelCell; 
    [cell.button addTarget:self ... ]; 
    //button is IBOutlet in your CustomCell class which you will have 
    //connected to your Button in xib 
} 
+1

同じのtableViewクラスに動的なボタンでワークアウトしてみ..! =)Adil ..ありがとうございました.. ところで、ボタンのIBActionをカスタムセルからFile's Owner(UIViewController)に直接接続することもできます.. !! – tGilani

+1

まあ、その場合、別の 'UIViewController'でそのUITableViewCellを使用することはできません、あなたはコードで再度ターゲットを追加する必要があります。 :) –

+0

ポイント取って! – tGilani

1

グレート...すべてのクラッタクリア

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    if (cell == nil) 
    { 
     NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"WorkRequestedCC" owner:self options:nil]; 
{ 
     for (id oneObject in nib) if ([oneObject isKindOfClass:[WorkRequestedCC class]]) 
      cell = (WorkRequestedCC *)oneObject; 


    } 

    UILabel *Button=[[UIBUtton alloc]initWithFrame:CGRectMake(792, 13, 10, 15)]; 

    [Button addTarget:self action:@selector(ButtonClicked:) forControlEvents:UIControlEventTouchUpInside]; 
    [cell.contentView addSubview:Button]; 
} 

-(void) ButtonClicked 
{ 
    //your code here 
    } 
} 
+0

あなたのご意見ありがとうございます.. !! – tGilani

+0

コード例には、2つのひらめく中括弧(6行目と最後から2番目の行)が含まれています。このコードを修正して明確にしてください。 –

関連する問題