7834


画面内のテーブルの1つのセルに3つのLabelを入れています

セルをタップして次の画面に遷移した際にそのうちの1つのLabelの中身をNavigationBarに表示させたいです。

今のところ

[code]

    - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    
        if ([[segue identifier] isEqualToString:@"showSubject"]) {
    
            naviTitle.title = [self.tableView cellForRowAtIndexPath:[self.tableView indexPath
    ForSelectedRow]].textLabel.text;
        }
    }
    
[/code]

でやったところセル内に標準の1つだとできたのですが  
複数のLabelを使った際のそのうち1つの取り出し方がわかりません。  
Tagなどを使うのでしょうか。その際はどのように書くのでしょうか。

どなたかわかる方がいましたら宜しくお願いします。


CC BY-SA 3.0
2015-03-12T08:34:37.547
7829
2015-03-14T02:51:23.220
2015-03-12T09:02:55.427
-1
8802
question
objective-c iphone
objective-c セルの中にある複数のlabelの中の一つを取得したい


storyboard側でタグを設定すれば下記でそれぞれのUILabelを取得できます。

[code]

    - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
    {
        if ([[segue identifier] isEqualToString:@"showSubject"]) {
            UITableViewCell* cell = [self.tableView cellForRowAtIndexPath:[self.tableView indexPathForSelectedRow]];
    
            UILabel* label = (UILabel *)[cell viewWithTag:tagNo];
            naviTitle.title = label.textLabel.text;
        }
    }
    
[/code]

ただ、カスタムセルのクラスを作ってあげればもっときれいに各要素を操作できるので、そちらの方がおすすめです。  
上記の方法だと要素の追加でタグの修正が発生したり、タグを間違えたりするので・・・。

カスタムセルを使った場合のイメージ

[code]

    - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
    {
        if ([[segue identifier] isEqualToString:@"showSubject"]) {
            CustomeCell* cell = [self.tableView cellForRowAtIndexPath:[self.tableView indexPathForSelectedRow]];
            // タイトルを取得
            naviTitle.title = [cell getTitle];
        }
    }
    
[/code]


CC BY-SA 3.0
2015-03-12T08:49:03.517
7834
2015-03-14T02:51:23.220
2015-03-14T02:51:23.220
3516
3516
7829
answer