From 284366dc0bb73fab693fedeb1f1d94f5abc2f39b Mon Sep 17 00:00:00 2001 From: Vladimir Enchev Date: Mon, 9 Nov 2015 10:35:22 +0200 Subject: [PATCH] selectedIndex behavior when no tabs fixed --- apps/tests/ui/tab-view/tab-view-tests.ts | 38 ++++++++++++++++++++++++ ui/tab-view/tab-view.ios.ts | 4 +++ 2 files changed, 42 insertions(+) diff --git a/apps/tests/ui/tab-view/tab-view-tests.ts b/apps/tests/ui/tab-view/tab-view-tests.ts index 5a59df172..f20011982 100644 --- a/apps/tests/ui/tab-view/tab-view-tests.ts +++ b/apps/tests/ui/tab-view/tab-view-tests.ts @@ -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"); // // # TabView @@ -391,4 +392,41 @@ export class TabViewTest extends testModule.UITest { export function createTestCase(): TabViewTest { return new TabViewTest(); +} + +export function test__tabview_selectedindex_will_work_from_xml() { + var p = builder.parse( + '' + + '' + + ''+ + '' + + '' + + '' + + '' + + '' + + '' + + '' + + '' + + '' + + '' + + ''); + + function testAction(views: Array) { + var tab: 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(); + } } \ No newline at end of file diff --git a/ui/tab-view/tab-view.ios.ts b/ui/tab-view/tab-view.ios.ts index 2b4b93a87..72f6d2af9 100644 --- a/ui/tab-view/tab-view.ios.ts +++ b/ui/tab-view/tab-view.ios.ts @@ -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 {