| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -227,6 +227,8 @@ class IOSApplication implements IOSApplicationDefinition { | |||
| 227 | 227 | this._rootView._onRootViewReset(); | |
| 228 | 228 | } | |
| 229 | 229 | const rootView = createRootView(view); | |
| 230 | + const controller = getViewController(rootView); | ||
| 231 | + | ||
| 230 | 232 | this._rootView = rootView; | |
| 231 | 233 | ||
| 232 | 234 | if (createRootFrame.value) { | |
@@ -236,7 +238,7 @@ class IOSApplication implements IOSApplicationDefinition { | |||
| 236 | 238 | // setup view as styleScopeHost | |
| 237 | 239 | rootView._setupAsRootView({}); | |
| 238 | 240 | } | |
| 239 | - const controller = getViewController(rootView); | ||
| 241 | + setViewControllerView(rootView); | ||
| 240 | 242 | const haveController = this._window.rootViewController !== null; | |
| 241 | 243 | this._window.rootViewController = controller; | |
| 242 | 244 | if (!haveController) { | |
@@ -339,16 +341,25 @@ function getViewController(view: View): UIViewController { | |||
| 339 | 341 | if (viewController instanceof UIViewController) { | |
| 340 | 342 | return viewController; | |
| 341 | 343 | } else { | |
| 342 | - const nativeView = view.ios || view.nativeViewProtected; | ||
| 343 | - if (nativeView instanceof UIView) { | ||
| 344 | - viewController = iosView.UILayoutViewController.initWithOwner(new WeakRef(view)) as UIViewController; | ||
| 345 | - viewController.view.addSubview(nativeView); | ||
| 346 | - view.viewController = viewController; | ||
| 347 | - return viewController; | ||
| 348 | - } | ||
| 344 | + // We set UILayoutViewController dynamically to the root view if it doesn't have a view controller | ||
| 345 | + // At the moment the root view doesn't have its native view created. We set it in the setViewControllerView func | ||
| 346 | + viewController = iosView.UILayoutViewController.initWithOwner(new WeakRef(view)) as UIViewController; | ||
| 347 | + view.viewController = viewController; | ||
| 348 | + return viewController; | ||
| 349 | 349 | } | |
| 350 | + } | ||
| 351 | + | ||
| 352 | + function setViewControllerView(view: View): void { | ||
| 353 | + const viewController: UIViewController = view.viewController || view.ios; | ||
| 354 | + const nativeView = view.ios || view.nativeViewProtected; | ||
| 350 | 355 | ||
| 351 | - throw new Error("Root should be either UIViewController or UIView"); | ||
| 356 | + if (!nativeView || !viewController) { | ||
| 357 | + throw new Error("Root should be either UIViewController or UIView"); | ||
| 358 | + } | ||
| 359 | + | ||
| 360 | + if (viewController instanceof iosView.UILayoutViewController) { | ||
| 361 | + viewController.view.addSubview(nativeView); | ||
| 362 | + } | ||
| 352 | 363 | } | |
| 353 | 364 | ||
| 354 | 365 | global.__onLiveSync = function () { | |
| Back | FazBrowse Home | New Git URL |
0 commit comments