UINavigationController 推送崩溃

UINavigationController push crash

我有一个 NestedViewController,我正试图将其推入 UINavigationController。这会导致崩溃并显示以下堆栈跟踪:

此外:

我做错了什么?

UPD1:我做了这个,但这不会导致崩溃:

let controlla = { () -> UIViewController in
    let cont = UIViewController()
    cont.view = {
        let view = UIView()

        view.backgroundColor = UIColor.green
        let stack = UIStackView(arrangedSubviews: [ {
            let view = UIView()
            view.backgroundColor = UIColor.yellow

            view.snp.makeConstraints { make in
                make.height.equalTo(128)
            }
            return view
        }() ])
        view.addSubview(stack)

        stack.snp.makeConstraints { make in
            make.top.leading.trailing.equalToSuperview()
        }

        return view
    }()
    return cont
}()

controller.pushViewController(controlla, animated: true)

UPD2:应用户 Adeel 的要求,在此处的评论中是在中止断点命中时控制台中的内容:

libc++abi.dylib: terminating with uncaught exception of type NSException

如果就这么简单,而且信息就在那里,这个问题就不会真的存在了,是吗。

UPD3:因此,为了扩展我的调查,我卸载了视图控制器中除根视图之外的所有视图。

场景树开始看起来像这样:

然后,当然,我摆脱了视图控制器中的所有插座和代码。

它仍然崩溃。不过,模态呈现仍然可以正常工作。

UPD4:为了以防万一,我将 NestedViewController 重命名为其他名称。没用。

UPD5:在 UPD1 之前它看起来像这样:

controller.pushViewController(controller, animated: true)

检查这个 Whosebug

崩溃信息不明确。希望对你有所启发。

如 UPD5 中所述,您推入导航控制器的控制器本身就是同一个控制器。