mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-08-17 04:41:36 +08:00
Merge pull request #2124 from NativeScript/raikov/fix-2084
Fixed: App crashes when animating ActionBar
This commit is contained in:
@ -29,7 +29,21 @@ export class NavigationButton extends ActionItem {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export class ActionBar extends common.ActionBar {
|
export class ActionBar extends common.ActionBar {
|
||||||
public update() {
|
|
||||||
|
get ios(): UIView {
|
||||||
|
|
||||||
|
if (!(this.page && this.page.parent)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
let viewController = (<UIViewController>this.page.ios);
|
||||||
|
if (viewController.navigationController !== null) {
|
||||||
|
return viewController.navigationController.navigationBar;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public update() {
|
||||||
// Page should be attached to frame to update the action bar.
|
// Page should be attached to frame to update the action bar.
|
||||||
if (!(this.page && this.page.parent)) {
|
if (!(this.page && this.page.parent)) {
|
||||||
return;
|
return;
|
||||||
@ -38,7 +52,7 @@ export class ActionBar extends common.ActionBar {
|
|||||||
var viewController = (<UIViewController>this.page.ios);
|
var viewController = (<UIViewController>this.page.ios);
|
||||||
var navigationItem: UINavigationItem = viewController.navigationItem;
|
var navigationItem: UINavigationItem = viewController.navigationItem;
|
||||||
var navController = frameModule.topmost().ios.controller;
|
var navController = frameModule.topmost().ios.controller;
|
||||||
var navigationBar = <UINavigationBar>navController.navigationBar;
|
var navigationBar = navController ? <UINavigationBar>navController.navigationBar : null;
|
||||||
var previousController: UIViewController;
|
var previousController: UIViewController;
|
||||||
|
|
||||||
// Set Title
|
// Set Title
|
||||||
@ -53,7 +67,7 @@ export class ActionBar extends common.ActionBar {
|
|||||||
if (indexOfViewController < navController.viewControllers.count && indexOfViewController > 0) {
|
if (indexOfViewController < navController.viewControllers.count && indexOfViewController > 0) {
|
||||||
previousController = navController.viewControllers[indexOfViewController - 1];
|
previousController = navController.viewControllers[indexOfViewController - 1];
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set back button text
|
// Set back button text
|
||||||
if (previousController) {
|
if (previousController) {
|
||||||
if (this.navigationButton) {
|
if (this.navigationButton) {
|
||||||
@ -250,6 +264,10 @@ export class ActionBar extends common.ActionBar {
|
|||||||
super.onLayout(left, top, right, bottom);
|
super.onLayout(left, top, right, bottom);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public layoutNativeView(left: number, top: number, right: number, bottom: number) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
public _shouldApplyStyleHandlers() {
|
public _shouldApplyStyleHandlers() {
|
||||||
var topFrame = frameModule.topmost();
|
var topFrame = frameModule.topmost();
|
||||||
return !!topFrame;
|
return !!topFrame;
|
||||||
|
Reference in New Issue
Block a user