How can you restore a pivot controls selectedIndex when navigating back using WinJS on Windows Phone 8.1? -


i'm trying restore selectedindex property of pivot control after user navigates "detail page" , pivot page.

i'm capturing selectedindex , storing in session state on pivot pages unload event. i've been unable figure out when restore value.

i've tried on page load event. i've verified value being set, seems other event firing later , overwriting it.

i've tried checking if session state variable set in pivots onselectionchanged , onitemanimationstart events, setting in either of causes app crash. record exception is: 0x80020101 - javascript runtime error. not complete operation due error 80020101.

var sessionstate = winjs.application.sessionstate; var hub = null;  //in winjs.ui.pages.define call pivot item page ready: function (element, options) {     hub = element.queryselector(".hub").wincontrol;      hub.onselectionchanged = function (args) {        //crashes app        if (sessionstate.collectionitemselectedindex) {            hub.selectedindex = sessionstate.collectionitemselectedindex;        }         //code omitted     }      //code omitted },  unload: function () {     sessionstate.collectionitemselectedindex = hub.selectedindex;     console.log('pivot index: ' + sessionstate.collectionitemselectedindex); },  //this fire, , set index, seems overwritten after load: function (uri) {     if (sessionstate.collectionitemselectedindex) {         hub.selectedindex = sessionstate.collectionitemselectedindex;         console.log('pivot index: ' + sessionstate.collectionitemselectedindex);     }      //taken base.js     if (!this.selfhost) {         return winjs.ui.fragments.rendercopy(uri);     } }, 

ok, in similar scenario , looked post resolve problem. wasn't overly happy solution, did investigating , found trivial. crashes due code gets never ending loop , crashes. reason set selectedindex in onselectionchange event, doesn't make sense. i'm calling _hubready in "ready" function:

     // call _hubready ready:function()     _hubready: function (hub) {         if (!hub.onselectionchanged)             hub.onselectionchanged = function (args) {                 // save selected index session state.                 session.collectionitemselectedindex = args.detail.index;             };          if (session.collectionitemselectedindex)             hub.selectedindex = session.collectionitemselectedindex;     }, 

Comments

Popular posts from this blog

java - How to specify maven bin in eclipse maven plugin? -

single sign on - Logging into Plone site with credentials passed through HTTP -

php - Why does AJAX not process login form? -