0

わかりましたので、私は一日中解決策を探していましたが、うまくいくものは何もありませんでした. ユーザーが "vrijdag" (= オランダ語で金曜日) を選択すると、2 番目の ViewController が開きます。

何が機能するか:ナビゲーションコントローラーにリンクされている最初のビューコントローラーを選択し、右クリックして2番目のビューコントローラーにドラッグできますが、最初のビューコントローラーに追加したテーブルビューからではありません

複数のチュートリアルを試しましたが、それらはすべて、テーブルビューを含むビューコントローラーではなく、テーブルビューコントローラーを使用しています:)

誰かがこれに対する解決策を持っていますか? もちろん、次の Viewcontroller が正しい情報を表示するように、どのセルがクリックされたかを知ることも重要です。

テーブルビューを含む私のViewController

お時間をいただきありがとうございます:)

4

1 に答える 1

2

ビュー コントローラを aUITableViewDelegateおよび にしUITableViewDataSourceます。次に、デリゲートをviewDidLoad:に設定しますself.myTableView.delegate = self

次に、データソースとデリゲート メソッドをコードで実装するだけです。特に次のコードは次のとおりです。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
  [self performSegueWithIdentifier:@"myCustomSegue" sender:indexPath];
}

編集:IBで手動セグエを設定する方法は次のとおりです。最初に、最初のビュー コントローラーを選択し、Ctrl キーを押しながらクリックして 2 番目のビュー コントローラーにドラッグし、小さなメニューから [プッシュ] を選択します。

ここに画像の説明を入力

次に、セグエ自体 (View Controller 間の線上の円) をクリックして、セグエに名前を付けます。次に、右側の Attributes Inspector に移動すると、Identifier という名前のフィールドが表示されます。好きな名前を入力してください。

ここに画像の説明を入力

この設定を行った後、performSegueWithIdentifier:sender:メソッドは機能するはずです。

もう 1 つ注意: メソッドでセグエがどのように機能するかを設定できますprepareForSegue:sender:。実装例を次に示します。クラス名と属性名をカスタム クラスに置き換えます。このメソッドから宛先のパブリック プロパティを設定できることに注意してください。

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender //sender should be an NSIndexPath object
{
    if ([segue.identifier isEqualToString:@"myCustomSegue"]) {
       NSIndexPath *indexPath = sender;
       MyViewController *secondViewController = (MyViewController*)segue.destinationViewController;
       UITableViewCell* cell = [self tableView:self.tableView cellForRowAtIndexPath:indexPath]
       secondViewController.name = cell.textLabel.text
    }
}
于 2013-06-07T23:13:46.650 に答える