-1

値を使用している間DetailViewController、値はから渡されてUITabelViewControllerいませんが、コードに問題がありますか?

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

detailedvu *dvController = [[detailedvu alloc] initWithNibName:@"detailedvu" bundle:[NSBundle mainBundle]];
if (0 == indexPath.row)
{
    NSLog(@"0");
    dvController.lb1.text = @"Make";
}
[self.navigationController pushViewController:dvController animated:YES];
}

整理するのを手伝ってください。

4

2 に答える 2

2

dvcontrollerは正しくインスタンス化されます。ここでの問題は、がlblnibからのラベルであるということです(私は思う)。したがって、ビューコントローラにプッシュされると、新しいインスタンスが作成されるため、ここでの設定は意味がありません。

NSStringなどのデータホルダーに渡し、のラベルをロードしviewdidLoadますdetailedvu

1つの提案:読みやすくするために、命名規則に従ってください。

ハッピーコーディング:)

于 2013-02-19T14:20:20.827 に答える
2

これを使用してこれを達成できます。

detailsvu.hファイルに文字列変数プロパティを作成します。

@property (strong, nonatomic) NSString * str;

そしてdetailedvu.mファイルにこれを追加します:

@synthesize str;

- (void)viewDidLoad
{
    [super viewDidLoad];

    if (str.length!=0) {
        NSLog(@"hi%@",str);
        lb1.text=str;
    }
}

そして、あなたのテーブルvc .mファイルにこのコードを入れてください:

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

detailedvu *dvController = [[detailedvu alloc] initWithNibName:@"detailedvu" bundle:[NSBundle mainBundle]];
if (0 == indexPath.row)
{
    NSLog(@"0");
    dvController.str = @"Make";
}
[self.navigationController pushViewController:dvController animated:YES];
}
于 2013-02-19T14:27:16.000 に答える