3

に2つUITableViews埋め込まれていUINavigationControllerます。最初のテーブル ビュー コントローラーでセルを選択すると、2 番目のビュー コントローラーへのプッシュ セグエがトリガーされます。このセグエは実行されていません。

FirstTableVC

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
   // getting called as planned
   if (indexPath.row == 0 && reload == YES) {
     // working
     [self pushedRefresh:self];
     reload = NO;
     return;
  }
  NSLog(@"past return"); // logged as planned
  // NOT performing!
  [self performSegueWithIdentifier:@"more" sender:[self.tableView cellForRowAtIndexPath:indexPath]];
}

やったこと・気づいたこと

  • SecondTblVC's viewDidLoad:メソッドが呼び出されていません。ただし、非プッシュ セグエを使用すると、VC は正しく表示されます。
  • 送信者パラメーターでnilandを使用してみましたが、同じ結果が得られました。selfperformSegueWithIdentifier:
  • UIViewController同じ結果で、2 番目のビュー コントローラーをバニラに変換しました。
  • 「more」セグエは正しくラベル付けされ、次のように接続されていますpush
  • クラッシュはありません。セグエがないだけです。
  • ストーリーボードの設定全体を削除UINavigationControllerし、同じ結果に置き換えました。
  • 私は別の .h/.m を持っていませUINavigationController
  • テーブル ビューdelegates/data sourceリンクは計画どおりに機能しています。
  • (ログイン方法から学ぶ)がありますdestinationViewControllerperformSegue

より多くのコードとスクリーンショットが役立つかどうか教えてください。

ありがとうございました。

編集 これが私のcellForRowAtIndexPath実装です:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 

{
    static NSString *simpleTableIdentifier = @"ReuseCell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];

    cell.textLabel.text = [clubNames objectAtIndex:indexPath.row];
    cell.detailTextLabel.text = [times objectAtIndex:indexPath.row];

    if (cell == nil) 
    {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:simpleTableIdentifier];
    }

    [cell setAccessoryType:UITableViewCellAccessoryDisclosureIndicator];

    return cell;
}
4

1 に答える 1