5921


<https://akira-watson.com/iphone/tableview_3_objective-c.html>  
上記サイトは、TableViewCell(以下、Cellとします）をクリックすることでViewControllerを  
生成してそこに遷移し、ViewController上のImageViewに画像を表示させるコードを紹介しています。  
表示される画像というのは、plistに格納されており、Cellをクリックすることで呼び出されます。  
plistには、テキストデータも含まれています。テキストデータは、Cellのテキストとして動的に表示されています。

上記サイトを参考にして、Cellをクリックして生成されたViewController上に貼り付けたラベルに、  
Cellのテキストを表示させる方法を模索しています。  
そのためには上記サイトのコードのうち、何箇所かを書き換えなければいけませんが、

[code]

    //ViewController.hの中身
    @interface ViewController : UIViewController
    
    @property NSString *imageName;
    @property IBOutlet UIImageView *imageView;
    
[/code]

を

[code]

    //ViewController.hの中身
    @interface ViewController : UIViewController
    
    @property NSString *textName;
    @property (weak, nonatomic) IBOutlet UILabel *lbText;
    
[/code]

に書き換え、また、

[code]

    // ViewController.mの中身
    #import "ViewController.h"
    @interface ViewController ()
    @end
    @implementation ViewController
    - (void)viewDidLoad
    {
        [super viewDidLoad];
        self.imageView.image = [UIImage imageNamed:self.imageName];
        // 画像のアスペクト比を維持しUIImageViewサイズに収まるように表示
        [self.imageView setContentMode:UIViewContentModeScaleAspectFit];
    }
    
[/code]

というコードのうち、

[code]

    self.imageView.image = [UIImage imageNamed:self.imageName];
    
[/code]

を、画像ではなくテキストを表示させるものにしたいのですが、どうすれば良いでしょうか？  
とりあえず試しにこんなものを書いてみたのですが・・・

[code]

    self.lbLabel.text = [UITextFieldLabel textNamed:self.textName];
    
[/code]

当然動きません。

以上、何卒よろしくお願いいたします。


CC BY-SA 3.0
2015-02-04T04:57:08.273
5919
2015-02-06T01:08:43.370
2015-02-04T05:40:36.377
7470
7470
question
objective-c iphone ios8
TableViewCellをクリックして生成されたViewController上のラベルにCellのテキストを表示させる方法

[code]

    UILabel* label = [[UILabel alloc] initWithFrame:CGRectMake(10,100,200,30)];
    label.text = self.textName;
    label.backgroundColor = [UIColor redColor];
    [self.view addSubview:label];
    
[/code]

これでどうでしょうか？

追記：  
上記はIBOutletを使わずにコード上でUILabelを生成して、UIViewControllerの持つプロパティ"view"に貼り付けただけです。画面に何も出ない場合の原因としては色々考えられますが、  
例えば、

> ・上記コードの後の処理で貼り付けたUILabelの上に別のViewを被せて貼り付けている。  
>  ・ViewControllerクラスに画面遷移していない。  
>  ・self.textNameに値が入っていない。など

ログを出す場合は下記のようにすると良いかもしれません。

[code]

    - (void)viewDidAppear:(BOOL)animated
    {
        [super viewDidAppear:animated];
    
        // 何か処理をすることがあればここで...
    
        NSLog(@">>>>>>>>>>>>>>> textName : %@",self.textName);
        NSLog(@"views : %@",[self.view performSelector:@selector(recursiveDescription)]);  // リリース時は消すこと
    }
    
[/code]


CC BY-SA 3.0
2015-02-04T05:14:05.837
5921
2015-02-06T01:08:43.370
2015-02-06T01:08:43.370
7364
7364
5919
answer