0

私は以下のコードを持っています:ここでCell newはカスタムセルで、ユーザーがそのメッセージを表示するために別のuiviewcontrollerに転送する必要がある行を選択すると、インデックスにオブジェクトを持つ配列がありますしかし、私はそれを行うことができません.

これを行うと、「UILabel *」から「NSString *」に割り当てている互換性のないポインタータイプというエラーが表示されます

VC2.DisplayMsg.text = cell.textLabel;

displayMsg は、テキストを表示する必要がある uiviewcontroller のラベルです。どこが間違っていますか?

行を選択してその uiviewController にメッセージを表示する際に、ナビゲーション uitableviwController から別のビューコントローラーに値を転送する方法を教えてください。

前もって感謝します。

完全なコード:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{


Cellnew *cell = [array objectAtIndex:indexPath.row];


      ViewControllerDisplayMsg *VC2 = [[ViewControllerDisplayMsg alloc] init];

VC2.DisplayMsgtext = cell.textLabel.text;


    [self performSegueWithIdentifier:@"displayMsgSegueIdentifier" sender:self];

}

エラー :

キャッチされていない例外 'NSInvalidArgumentException' が原因でアプリを終了しています。理由: '-[__NSCFString textLabel]: 認識されないセレクターがインスタンスに送信されました

4

3 に答える 3

2

NSString otherでプロパティを定義しviewController、最初にテーブルの値をこの文字列に割り当て、最後にviewControllerのviewDidLoadメソッドでこの文字列をラベルテキストに割り当てることができます。その他のコントローラーをFirstControllerのプロパティとして定義することをお勧めします。

この対応するクラスまたはコントローラーがグラフィック要素と値を表示する責任があるため、クラス内でグラフィック要素を更新しておく必要があります。

YourTableViewController.h

@class SecondViewController;

@property(strong,nonatomic)SecondViewController secondVC;

YourTableViewController.m

self.secondVC=[SecondViewContrlller alloc]initwithNibName:@"SecondViewController" bundle:nil];
self.secondVC.stringValue= cell.textLabel.text;

YourOtherViewController.h

@property(strong,nonatomic)NSString *stringValue;

YourOtherViewController.m

-(void)viewDidLoad{

self.displayMsg.text=self.stringValue;

[super viewDidLoad];
}
于 2013-03-19T12:31:54.857 に答える
1

UIViewController で NSString プロパティを取得します。たとえば、DisplayMsg: を didSelectRowAtIndexPath メソッドで取得します。

VC2.DisplayMsg=cell.textLabel.text;
于 2013-03-19T12:36:54.167 に答える
1
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    // Make sure your segue name in storyboard is the same as this line
    if ([[segue identifier] isEqualToString:@"YOUR_SEGUE_NAME_HERE"])
    {
        // Get reference to the destination view controller
        YourViewController *vc = [segue destinationViewController];

        // Pass any objects to the view controller here, like...
        [vc setMyObjectHere:object];
    }
}

This code will help you

于 2013-03-19T12:39:35.280 に答える