Merge pull request #997 from NativeScript/nnikolov/IosFastNavigationIssue

Fixed fast navigation issues in iOS.
This commit is contained in:
Nedyalko Nikolov
2015-10-29 11:11:35 +02:00
3 changed files with 12 additions and 2 deletions

View File

@@ -194,6 +194,12 @@ export class Frame extends view.CustomLayoutView implements definition.Frame {
var navigationContext = this._navigationQueue[0];
this._processNavigationContext(navigationContext);
}
this._updateActionBar();
}
public navigationQueueIsEmpty() {
return this._navigationQueue.length === 0;
}
public _isEntryBackstackVisible(entry: definition.BackstackEntry): boolean {

View File

@@ -133,6 +133,9 @@ export class Frame extends frameCommon.Frame {
var newValue = this._getNavBarVisible(page);
this._ios.showNavigationBar = newValue;
if (this._ios.controller.navigationBar) {
this._ios.controller.navigationBar.userInteractionEnabled = this.navigationQueueIsEmpty();
}
}
public _getNavBarVisible(page: pages.Page): boolean {
@@ -314,7 +317,7 @@ class UINavigationControllerImpl extends UINavigationController implements UINav
}
}
var isBackNavigation = currentNavigationContext ? currentNavigationContext.isBackNavigation : false;
let isBackNavigation = currentNavigationContext ? currentNavigationContext.isBackNavigation : false;
if (isBack) {
try {

View File

@@ -151,6 +151,7 @@ export class Page extends pageCommon.Page {
if (this._enableLoadedEvents) {
super.onLoaded();
}
this._updateActionBar(false);
}
public notify<T extends observable.EventData>(data: T) {
@@ -260,7 +261,7 @@ export class Page extends pageCommon.Page {
if (this._isModal && this._UIModalPresentationFormSheet && device.deviceType === DeviceType.Tablet) {
statusBarHeight = 0;
}
if (this.frame && this.frame._getNavBarVisible(this)) {
// Measure ActionBar with the full height.
let actionBarSize = View.measureChild(this, this.actionBar, widthMeasureSpec, heightMeasureSpec);