didi / didi/Hummer

iOS controller pop 后 app 崩溃

Open
#421 0 comments 0 reactions 0 assignees View on GitHub
bug Needs: Triage 🔍
Dominant language
Objective-C
Stars
1.4k
Forks
186
PR merge metrics
No merged PRs in 30d

Description

## 描述

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](https://user-images.githubusercontent.com/66465525/219262758-88e4519e-1966-47f0-932a-e527284b1232.png)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.