2012-02-12 7 views
1

は私がuitableの、と2つのボタンを持って、私は基本的にボタンを押したときにUITableViewを動的に更新する方法は?赤/</p> <p>青いボタンを押すと、行と:

を開発しようとしている一見とてもシンプルなアプリでこだわっていますそのボタンの対応するタイトルは

enter image description here

は私が(データソース、デリゲート、resuable識別子など)

を実装する必要がありますどのように複雑なのUITableViewによって圧倒されるよ表に追加されますあなたはthis..iは簡単な解決策を掲載する予定学んでいるので

は誰が好ましく私に詳細なコードの私のボタンの

を示し、これで私を助けることができる、私はこの

- (IBAction)buttonPressed:(UIButton *)sender{ 
    NSString *item = sender.currentTitle; 
    [self.cellArray addObject:item]; 
    [self.myTable reloadData]; 
} 
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
    return self.cellArray.count; 
} 


-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 

{ 
    static NSString *CellIdentifier = @"The Table Cell"; 

    self.myTableCell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
    if (self.myTableCell == nil) { 
     self.myTableCell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; 
    } 
    self.myTableCell.textLabel.text = [self.cellArray objectAtIndex:indexPath.row]; 
    return self.myTableCell; 
} 
+0

あなたはこれまで何をしましたか? tableviewデリゲートメソッドのために書いたコードをいくつか追加します。あなたはデータソースを更新し、[yourtable reloadData] – jkr

+0

を正直に呼び出す必要があります。どこから始めたらいいですか?デリゲートとデータソースはどこに書きますか?私はこれらの用語で完全にノブです。私はいくつかのチュートリアルをチェックしましたが、それは後でビューに呼び出されるUITableViewControllerに関するものです。しかし、私のアプリケーションでは、私のビューにとどまるために自分のUITableViewオブジェクトが必要で、その場合には動的に自身を更新する必要があると私は思っていません。 – Shakesbeer

答えて

2

のようなものを持っています。 メンバー変数NSMutableArray *cellArraysを追加します。

buttonPressedチェックであなたのviewDidLoad

でそれを初期化します。あなたのテーブルビューのデータソース方式で今すぐ

if([@"red" isEqualToString:[YourButton titleForState:UIControlStateNormal]]) 
{ 
[self.cellArrays addObject:@"red"]; 
} 
else 
{ 
[self.cellArrays addObject:@"blue"]; 
} 
[self.YOURTABLEVIEW reloadData]; 

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
return self.cellArrays.count; 
} 


-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 

{ 
//in between your code; 
YOURCELL.textlabel.text = [self.cellArrays objectAtIndex : indexpath.row]; 
} 

これを試してみてください。..

私は、その後、データソースとデリゲートメソッドをオーバーライドして、あなたが行ってもいいでなければなりませんのUITableViewControllerのサブクラスをお勧めします
+0

これは/ hugを探しているようです。私はrootviewcontroller.mにデータソースメソッドを置くことはできますか? – Shakesbeer

+0

はい..でも、ビューコントローラでテーブルビューが必要です。チュートリアルをyoutubeに作成する方法についてはチュートリアルを参照してください。 – Shubhank

+0

私はctrlを使ってUITableViewとUITableCellを両方とも.hファイルにドラッグして変数名を付けました。 YOURTABLEVIEWとYOURCELLをそれらの名前で置き換えることができますか? – Shakesbeer

0

。すぐにUITableViewに行くことは明らかなメリットがなくても複雑になります。

コアデータは使用していないかもしれませんが、TableViewControllerをフックアップし、すべてのコードが含まれているため、この講義はまだお勧めします。それをチェックアウト:

http://www.stanford.edu/class/cs193p/cgi-bin/drupal/node/289

のiTunes Uでの講義は、さらにすべてを説明。私がいることを追加したい

0

お楽しみ

ダミアン「もう一つは、コンパイラは警告を表示には、再利用可能な識別子を述べていない。まさにそれが何でありますか?」上記...

彼の答えは、あなたのテーブルビューのtableviewcellは識別子を持つ必要が正しいですが、そのコンパイラの警告を取り除くために...

。 IOS 5では、ストーリーボードで、TableViewのTableViewCellを強調表示し、識別子に値を入力します。これは、作成するセルのコード内の値と一致する必要があります。

関連する問題