selectedIndex behavior when no tabs fixed

This commit is contained in:
Vladimir Enchev
2015-11-09 10:35:22 +02:00
parent 11789dae5c
commit 284366dc0b
2 changed files with 42 additions and 0 deletions

View File

@ -10,6 +10,7 @@ import pageModule = require("ui/page");
import listViewModule = require("ui/list-view");
import buttonModule = require("ui/button");
import observable = require("data/observable");
import builder = require("ui/builder");
// <snippet module="ui/tab-view" title="TabView">
// # TabView
@ -391,4 +392,41 @@ export class TabViewTest extends testModule.UITest<tabViewModule.TabView> {
export function createTestCase(): TabViewTest {
return new TabViewTest();
}
export function test__tabview_selectedindex_will_work_from_xml() {
var p = <pageModule.Page>builder.parse(
'<Page>' +
'<TabView selectedIndex= "1">' +
'<TabView.items>'+
'<TabViewItem title="First">' +
'<TabViewItem.view>' +
'<Label text="First View" />' +
'</TabViewItem.view>' +
'</TabViewItem>' +
'<TabViewItem title= "Second">' +
'<TabViewItem.view>' +
'<Label text="Second View" />' +
'</TabViewItem.view>' +
'</TabViewItem>' +
'</TabView.items>' +
'</TabView>' +
'</Page>');
function testAction(views: Array<viewModule.View>) {
var tab: tabViewModule.TabView = <tabViewModule.TabView>p.content;
TKUnit.wait(0.2);
TKUnit.assertEqual(tab.selectedIndex, 1);
};
helper.navigate(function () { return p; });
try {
testAction([p.content, p]);
}
finally {
helper.goBack();
}
}

View File

@ -227,6 +227,10 @@ export class TabView extends common.TabView {
// When we set this._ios.viewControllers, someone is clearing the moreNavigationController.delegate, so we have to reassign it each time here.
this._ios.moreNavigationController.delegate = this._moreNavigationControllerDelegate;
if (this._ios.selectedIndex !== this.selectedIndex) {
this._ios.selectedIndex = this.selectedIndex;
}
}
public _getIcon(iconSource: string): UIImage {