weex iOS中toast无法显示的bug解决方案

最近一直在做weex的iOS APP,发现了不少坑,weex自带的model.toast可以模拟iOS的各种提示框信息,但是实际应用中发现在网页端显示正常,但在模拟器和真机上无法显示,找了很久也没发现有用的信息(weex相关的资料实在是太少了!),无意中发现了一篇文件完美解决这个问题。
方法一:如果App没有使用storyboard布局,可以删除Main.storyboard
首先删除Main.storyboard(有洁癖的肯定也会删除Xcode自动创建的ViewController),记住是移到废纸篓,而不是删除索引
然后删除Info.plist中的选项:Main storyboard file base name即可

方法二:修改WXModalUIModule.m中的方法如下即可:

- (void)toast:(NSString *)message duration:(double)duration
{
    WXAssertMainThread();
    UIView *superView =  [[[UIApplication sharedApplication] windows] objectAtIndex:0];
    if (!superView || superView.hidden) {
        superView = [UIApplication sharedApplication].keyWindow;
    }
    if (!superView || superView.hidden) {
        superView =  self.weexInstance.rootView;
    }
    UIView *toastView = [self toastViewForMessage:message superView:superView];
    WXToastInfo *info = [WXToastInfo new];
    info.toastView = toastView;
    info.superView = superView;
    info.duration = duration;
    [[WXToastManager sharedManager].toastQueue addObject:info];

    if (![WXToastManager sharedManager].toastingView) {
        [self showToast:toastView superView:superView duration:duration];
    }
}

你可能感兴趣的:(weex iOS中toast无法显示的bug解决方案)