Skip to content

Commit b40ca82

Browse files
author
Vladimir Enchev
committed
Merge pull request #1058 from NativeScript/tab-view-selectedIndex
selectedIndex behavior when no tabs fixed
2 parents f82f491 + 284366d commit b40ca82

File tree

2 files changed

+42
-0
lines changed

2 files changed

+42
-0
lines changed

apps/tests/ui/tab-view/tab-view-tests.ts

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import pageModule = require("ui/page");
1010
import listViewModule = require("ui/list-view");
1111
import buttonModule = require("ui/button");
1212
import observable = require("data/observable");
13+
import builder = require("ui/builder");
1314

1415
// <snippet module="ui/tab-view" title="TabView">
1516
// # TabView
@@ -391,4 +392,41 @@ export class TabViewTest extends testModule.UITest<tabViewModule.TabView> {
391392

392393
export function createTestCase(): TabViewTest {
393394
return new TabViewTest();
395+
}
396+
397+
export function test__tabview_selectedindex_will_work_from_xml() {
398+
var p = <pageModule.Page>builder.parse(
399+
'<Page>' +
400+
'<TabView selectedIndex= "1">' +
401+
'<TabView.items>'+
402+
'<TabViewItem title="First">' +
403+
'<TabViewItem.view>' +
404+
'<Label text="First View" />' +
405+
'</TabViewItem.view>' +
406+
'</TabViewItem>' +
407+
'<TabViewItem title= "Second">' +
408+
'<TabViewItem.view>' +
409+
'<Label text="Second View" />' +
410+
'</TabViewItem.view>' +
411+
'</TabViewItem>' +
412+
'</TabView.items>' +
413+
'</TabView>' +
414+
'</Page>');
415+
416+
function testAction(views: Array<viewModule.View>) {
417+
var tab: tabViewModule.TabView = <tabViewModule.TabView>p.content;
418+
419+
TKUnit.wait(0.2);
420+
421+
TKUnit.assertEqual(tab.selectedIndex, 1);
422+
};
423+
424+
helper.navigate(function () { return p; });
425+
426+
try {
427+
testAction([p.content, p]);
428+
}
429+
finally {
430+
helper.goBack();
431+
}
394432
}

ui/tab-view/tab-view.ios.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -227,6 +227,10 @@ export class TabView extends common.TabView {
227227

228228
// When we set this._ios.viewControllers, someone is clearing the moreNavigationController.delegate, so we have to reassign it each time here.
229229
this._ios.moreNavigationController.delegate = this._moreNavigationControllerDelegate;
230+
231+
if (this._ios.selectedIndex !== this.selectedIndex) {
232+
this._ios.selectedIndex = this.selectedIndex;
233+
}
230234
}
231235

232236
public _getIcon(iconSource: string): UIImage {

0 commit comments

Comments
 (0)