ビュー コントローラを 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
}
}