Skip to content

iOS controller pop 后 app 崩溃 #421

@liuhaijing-lab

Description

@liuhaijing-lab

描述

iOS controller pop 后 app 崩溃

Hummer version:

master branch

复现步骤

  1. 导出 tabbar 视图组件
    2.组件中使用原生 UITabBarController
    3.UITabBarController 管理多个 HMViewController
    4.HMViewController 加载 js 资源
    5.tabbar 所在控制器 pop 后 控制台输出 ‘HMJSContext 销毁’
    6.执行到 HMJSCExecutor.m 1315行 后崩溃

预期结果

组件正常销毁

样例代码、屏幕截图或者仓库链接

js 使用:

let tabBar = new TabBar()
tabBar.items = [{},{}]
this.appendChild(tabBar)

tabbar 视图组件关键代码:

HMJSContext *context = [HMJSGlobal.globalObject currentContext:self.hmContext];

NSURL *url = [NSURL URLWithString:urlString];
if (url.scheme.length == 0) {
    if (context) {
        url = [[NSURL alloc] initWithString:urlString relativeToURL:context.url];
        if (url.scheme.length == 0) {
            return;
        }
    } else {
        return;
    }
}

HMViewController *controller = [[HMViewController alloc] initWithURL:url.absoluteString params:@{}];
[self setTabBarItemImage:controller.tabBarItem imageSrc:imageSrc isSelectedImage:NO];
[self setTabBarItemImage:controller.tabBarItem imageSrc:selectedImageSrc isSelectedImage:YES];

崩溃的代码位置
image

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions