我将从主要问题开始:我的问题不容易再现。
所以......在我的应用中,根据用户是否第一次打开它,我正在更改rootViewController。
我这样做:
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
if /* code to figure out if it's the first launch */ {
let storyboard = UIStoryboard(name: "Onboarding", bundle: nil)
let onboardingViewController = storyboard.instantiateInitialViewController()
window?.rootViewController = onboardingViewController
}
return true
}
}
这基本上很棒!由于我正在构建Onboarding ViewController,因此我删除了if,因此它总是会被显示出来。这也很好,但突然之间应用程序将不再启动。屏幕保持黑色。然后我在另一台设备上运行完全相同的代码并在那里工作。 顺便说一句。上面的代码就是我的AppDelegate中的所有代码,如果OnboardingVC已经注释了所有内容,问题仍然存在。
在查看我的应用程序的UI-Debugger时,它看起来也很奇怪: 通常,UIWindow旁边会出现一个箭头,表明它的根目录确实是我的VC,但在我的情况下并非如此。
我不介意,只是从我的设备中删除应用程序并在之后重新安装它,但我有一个用户投诉我的另一个应用程序,用户使用相同的逻辑,谁告诉我有关确切的问题。现在我基本上重现了这个问题,但不知道问题应该在哪里。
我的应用正在使用故事板btw。
也许之前有人遇到过这个问题,并对可能出现的问题有所了解。
修改:
今天又遇到了问题......以下是一些观察: 当我启动ViewController并输出它的视图时,它不正确。它不是故事板中真正设置的视图。这是一个随机的其他观点。 故事板是否可能腐败?如果是这样的话......我该怎么办呢? 在我的Main-View-Controllers视图中添加了一个随机子视图并再次运行后,它又重新运行了...显然故事板有点腐败了吗?
好的......虽然开发......好吧......但是对于一个在那里的应用程序,突然间故事板变得腐败......这真的很糟糕! !
以前有人有这个问题吗?以及如何解决?
答案 0 :(得分:0)
试试这个 你的案例窗口是零
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
window = UIWindow(frame: CGRect(x: 0, y: 0, width: UIScreen.main.bounds.size.width, height: UIScreen.main.bounds.size.height))
if /* code to figure out if it's the first launch */ {
let storyboard = UIStoryboard(name: "Onboarding", bundle: nil)
let onboardingViewController = storyboard.instantiateInitialViewController()
window?.rootViewController = onboardingViewController
}
return true
}
}
答案 1 :(得分:0)
我终于找到了问题所在。无论出于何种原因,我显然将初始视图控制器的视图出口双链接到子视图。所以它有一个视图属性的出口(这怎么可能?) 它在启动时随机挑选或另一个.... 对朋友非常敏锐地看到问题:)