0

このiosチュートリアルに従っている: http://developer.apple.com/library/ios/#documentation/iPhone/Conceptual/SecondiOSAppTutorial/CustomizingDetailView/CustomizingDetailView.html#//apple_ref/doc/uid/TP40011318-CH5-SW3

マスターシーンとディテールシーンを作成しています。どちらもチュートリアルで説明されているとおりに行われます。

現在の問題は、詳細シーンに入ると、詳細シーンのレイアウトがロードされないことです。代わりに、何もないマスター シーン レイアウトがロードされます。

私が見る限り、問題はマスターシーンから詳細シーンへのデータの転送に関係しています。

このチュートリアルには、次の方法は含まれていません。

  • (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

それがなければ、アプリはマスター シーンからディテール シーンに移動できませんでした。セグエメソッドはデータを転送して詳細シーンに移動することを想定していたと思いますが、何らかの理由でそうではありません。したがって、このメソッドは次のように編集されました

{

    BirdSighting *sightingAtIndex = [self.dataController objectInListAtIndex:indexPath.row];

    BirdsDetailViewController *bd= [[BirdsDetailViewController alloc] init];

    bd.sighting = sightingAtIndex;

    [self.navigationController pushViewController:bd animated:YES];

}

これで、アプリはマスター シーンからディテール シーンに移動できますが、ディテール シーンは何もないマスター シーンのように見えます。

これまたはシーン間のデータ転送に関するヘルプは大歓迎です。前もって感謝します。

4

2 に答える 2

0

問題は、prepareForSegue が呼び出されていないことに起因しているようであり、didselectrowatindexpath を使用するだけではデータが正しく転送されません。

ここでこの回答を見て修正することができます: Custom UITableViewCell not calling prepareForSegue

ユーザーがセルに触れると、didSelectRowAtIndex が呼び出されるようですが、prepareForSegue は呼び出されません。prepareForSegue を機能させるには、手動で performSegue を呼び出す必要がありますか? これが私の解釈です。

于 2013-05-07T14:23:22.673 に答える