私はiOSプログラミングの独学者で、初心者の教科書を1つ手がけました。私は最初のモバイルアプリケーションを公開しようとしているので、私はコードを取り直していきます。私が使用した教科書は「Dependency Injection」を強調しましたが、私は単純な例をより複雑なアプリケーションに適応させるのに苦労しました。Swift - AppDelegate.swiftの依存性注入を設定する
このアプリケーションは、シェルとして動作し、読み込むためにtxtファイルを取得/解析します。アプリケーションが他のタブを有することになるので、私はその後TabBarController内にそのNavigationController埋め込ま
MyTableViewController {
var data: Data!
}
AppDelegate {
var window: UIWindow?
let data = Data()
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
let navCon = window!.rootViewController as! MyNavigationController
let tableVC = navCon.topViewController as! MyTableViewController
tableVC.data = data
return true
}
:私は正常/次のコードを使用してポピュレート必要そのデータを解析し、TableViewController取得私のモデルを、接続されています。私はrootViewControllerを設定し、データ変数を設定するまでドリルダウンするのと同じプロセスを試みましたが、ViewControllersをレイヤーする正しい方法を見つけることができず、エラーが発生し続けます。
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
let tabBarCon = window!.rootViewController as! MyTabBarController
let navCon = tabBarCon.presentedViewController as! MyNavigationController
let tableVC = navCon.topViewController as! MyTableViewController
tableVC.data = data
return true
}
と
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
let tabBarCon = window!.rootViewController as! MyTabBarController
let navCon = MyNavigationController()
tabBarCon.viewControllers = [navCon]
let tableVC = navCon.topViewController as! MyTableViewController
tableVC.data = data
return true
}
このエラーを修正するためのソリューションがあります:私は2つの異なるアプローチを試してみました
'致命的なエラーオプションの値をアンラップしながら、予想外にnilを見つけ'またはこのプロセスについて間違っていますか?ここでも、txtファイルを取得して辞書を作成するファイルがあります。その辞書にアクセスするために別のTableViewControllerが必要ですが、これは私が最初のデザインで行ったのと同じファイル内ではなく、最も効率的でリンゴを促進する方法でこれを実現したいのです。
ありがとうございました!
どのようにウィンドウを作成していますか? –
[iOS self.windowの作成可能な複製]?(https://stackoverflow.com/questions/21380567/ios-self-window-when-is-it-created) –
ユニバーサルシングルすべてのビューはプログラムによって作成されたものではなく、インターフェースビルダーで作成されています。 – Frank