You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

iOS技术求助:跳转后的视图控制器显示后立即返回原控制器

问题排查与解决思路

嘿,看了你遇到的问题——第二个视图控制器刚显示出来就立刻被弹回第一个VC,调试能看到viewDidLoad正常执行、表格也填充了数据,但紧接着就触发viewWillDisappear,仿佛被强制移除了。结合你给出的第一个VC代码,我整理几个最可能的原因和解决办法:

1. 跳转逻辑写错了(最常见的坑)

你没贴点击cell时的跳转代码,但十有八九是这里出了问题。比如不小心在跳转后立刻调用了返回方法,或者跳转方式用错了:

  • 先检查你的tableView:didSelectRowAtIndexPath:方法,确保是正确的push/present:
    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
        // 实例化第二个VC(替换成你的实际类名)
        YourSecondViewController *secondVC = [[YourSecondViewController alloc] init];
        // 传递数据(如果需要)
        secondVC.selectedResearch = self.researches[indexPath.row];
        // 正确的push到导航栈
        [self.navigationController pushViewController:secondVC animated:YES];
        // 如果是present的话,不要立刻调用dismiss
        // [self presentViewController:secondVC animated:YES completion:nil];
    }
    
    重点确认:这段代码里绝对不能出现[self.navigationController popViewControllerAnimated:YES];或者[self dismissViewControllerAnimated:YES completion:nil];这类返回代码,也不要有重复执行跳转逻辑的情况。

2. 第二个VC内部有主动返回的代码

检查第二个VC的生命周期方法(比如viewDidLoad、viewWillAppear),有没有不小心加了返回上一页的代码,比如:

// 错误示例!不要在第二个VC里写这个
[self.navigationController popViewControllerAnimated:YES];

另外,检查第二个VC的界面控件,有没有按钮的IBAction不小心绑定了返回方法,且这个按钮在视图加载时被误触发(比如按钮frame覆盖了整个屏幕,或者代码里主动调用了sendActionsForControlEvents:)。

3. 导航栏设置的潜在冲突?

看你第一个VC的viewWillDisappear里把导航栏背景设为了nil:

- (void) viewWillDisappear:(BOOL)animated {
    [super viewWillDisappear:animated];
    [self.navigationController.navigationBar setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];
}

虽然这个操作本身不会直接导致VC被弹出,但如果第二个VC对导航栏做了特殊设置(比如隐藏导航栏后又强制显示),可能间接引发问题。可以先注释掉这段代码测试一下,看问题是否消失。

4. 内存管理问题(可能性较低但需排查)

如果第二个VC的对象被提前释放,也会导致视图突然消失。检查:

  • 在第一个VC跳转时,第二个VC的局部变量是强引用(默认局部变量都是强引用,没问题);
  • 第二个VC里的核心数据属性(比如表格数据源)要用strong修饰,不要用weak:
    @property (strong, nonatomic) NSArray *researchData;
    

补充:你的代码有截断

你贴的第一个VC代码最后一行是status.dbId = research.s,明显没写完,建议检查完整代码里有没有逻辑错误——比如在cellForRowAtIndexPath里不小心触发了跳转逻辑?

先从「跳转代码错误」这个最常见的原因开始排查,应该能很快定位到问题!


内容的提问来源于stack exchange,提问作者Aliaegon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:41:05