0

私のセットアップでは、ログインを作成するストーリーボードを使用してから、ユーザーがボタンを押してメッセージを表示できるホーム画面を使用しています。

これらは、プログラムでインスタンス化されたテーブルに表示されます。

このテーブルから、行を押してその行の詳細を表示したいのですが、これを行うと、表示されるビューは空白になりますが、クラスに関連付けられているすべてのメソッドが起動されています (ビューはロードされました)。

私は文字通り、他の人が質問に対して提案したさまざまな解決策から10の異なる方法を試しましたが、何もうまくいきません.

新しいビューを作成してプッシュするコード:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    messageDetail *messageDetailView = [[messageDetail alloc]initWithNibName:nil bundle:nil];
    messageDetailView.message = [entityObjects objectAtIndex:indexPath.row];

    [self.navigationController pushViewController:messageDetailView animated:YES];
}

DetailView の ViewDidLoad:

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    NSLog(@"Message Detail:\n%@",message);
    messageTitle.text = message.message_title;
    messageBody.text = message.message_xml;
}

segueIdentifier ルートを使用してから prepareSegue: をインターセプトして新しいビューにデータを追加しようとしましたが、プログラムで tableView が作成されるため、セグエはありません。

次の方法でストーリーボードからビューをインスタンス化しようとしました:

messageDetailView = [self.storyboard instantiateViewControllerWithIdentifier:@"MDV"];

しかし、識別子を設定しても、識別子を持つビューがないため、アプリがクラッシュします。

4

2 に答える 2

0

nib 名として nil を送信します。nib ファイルがない場合は、initWithNibName 関数でメッセージ詳細ビューを割り当てないでください。

raw init または initWithFrame を使用します。どちらでも構いません。

幸運を

于 2013-01-03T15:18:48.393 に答える
0

私は基本的にこのコードhereで同じことをしました。お役に立てれば

    Detail_View *next=[[Detail_View alloc] initWithNibName:@"Detail_View" bundle:nil];

    //These are just values that I needed to set before going to the next page.
    //You can use this if you want to pass over the value of your table row
    //otherwise ignore this
    next.htmlContents= [[storage_array objectAtIndex:indexPath.row]objectForKey:@"title"];

    next.titleText=[[storage_array objectAtIndex:indexPath.row] objectForKey:@"title"];

    [self.navigationController pushViewController:next animated:YES];
于 2013-01-03T15:36:25.487 に答える