mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-11-05 13:26:48 +08:00
Merge pull request #2262 from NativeScript/raikov/fix-actionbar
Fixed a crash in action bar on iOS 9.3
This commit is contained in:
@@ -112,31 +112,23 @@ export class ActionBar extends common.ActionBar {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private populateMenuItems(navigationItem: UINavigationItem) {
|
private populateMenuItems(navigationItem: UINavigationItem) {
|
||||||
var items = this.actionItems.getVisibleItems();
|
let items = this.actionItems.getVisibleItems();
|
||||||
var leftBarItems = [];
|
let leftBarItems = [];
|
||||||
var rightBarItems = [];
|
let rightBarItems = [];
|
||||||
|
for (let i = 0; i < items.length; i++) {
|
||||||
for (var i = 0; i < items.length; i++) {
|
let barButtonItem = this.createBarButtonItem(items[i]);
|
||||||
var barButtonItem = this.createBarButtonItem(items[i]);
|
|
||||||
if (items[i].ios.position === enums.IOSActionItemPosition.left) {
|
if (items[i].ios.position === enums.IOSActionItemPosition.left) {
|
||||||
leftBarItems.push(barButtonItem);
|
leftBarItems.push(barButtonItem);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
rightBarItems.push(barButtonItem);
|
rightBarItems.splice(0, 0, barButtonItem);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
navigationItem.setLeftBarButtonItemsAnimated(<any>leftBarItems, false);
|
||||||
var leftArray: NSMutableArray = leftBarItems.length > 0 ? NSMutableArray.new() : null;
|
navigationItem.setRightBarButtonItemsAnimated(<any>rightBarItems, false);
|
||||||
leftBarItems.forEach((barItem, i, a) => leftArray.addObject(barItem));
|
if (leftBarItems.length > 0) {
|
||||||
|
|
||||||
// Right items should be added in reverse because they are added from right to left
|
|
||||||
var rightArray: NSMutableArray = rightBarItems.length > 0 ? NSMutableArray.new() : null;
|
|
||||||
rightBarItems.reverse();
|
|
||||||
rightBarItems.forEach((barItem, i, a) => rightArray.addObject(barItem));
|
|
||||||
|
|
||||||
navigationItem.leftItemsSupplementBackButton = true;
|
navigationItem.leftItemsSupplementBackButton = true;
|
||||||
navigationItem.setLeftBarButtonItemsAnimated(leftArray, true);
|
}
|
||||||
navigationItem.setRightBarButtonItemsAnimated(rightArray, true);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private createBarButtonItem(item: dts.ActionItem): UIBarButtonItem {
|
private createBarButtonItem(item: dts.ActionItem): UIBarButtonItem {
|
||||||
|
|||||||
Reference in New Issue
Block a user