After updating Titanium to 3.4.0 and Xcode to 6.0.1, hiding the MasterView of an iPad SplitWindow in portrait mode running iOS 8 causes the second level of a navigationWindow in the master view not to display.
To Recreate: Create a basic template app in Studio. Replace the app.js with the following code, build for iPad running iOS8 and run. Navigate to one of the subMenu's then back. Press the menu button to collapse MasterView, then press again to re-open MasterView. Select a subMenu again.
Expected Outcome: The sublist is displayed.
Actual Outcome: The sublist does not appear
NOTE: This works correctly in iOS7, and works correctly on apps that were built before Xcode6 + Studio 3.4.0 and installed on an iOS7 device which has since been upgraded to iOS8
Can anyone confirm this is not just me?
Mac OSX10.9.4, Titanium Studio 3.4.0.201409261227, Titanium CLI 3.4.0, Titanium SDK version 3.4.0.GA, Xcode 6.0.1 (6A317), Tested on iOS Simulator and iPad Mini
var masterOpen = true; var HomeView = Ti.UI.createWindow({ backgroundColor : 'brown' }); //Master Navigation Window for Split View var masterView = Ti.UI.createWindow({ title : "Testing", }); var masterTable = Ti.UI.createTableView(); for (var x = 0; x < 5; x++) { //Creates a tableView for child table var subTable = Ti.UI.createTableView(); for (var i = 0; i < 3; i++) { //Adds rows to the sub table subTable.appendRow(Ti.UI.createTableViewRow({ title : "subRow" + i, })); } //creates a window to contain the sub table var subView = Ti.UI.createWindow({ title : "subTable" + x, }); subView.add(subTable); //appends the row to the masterView table masterTable.appendRow({ title : "row" + x, childTable : subView, hasChild : true, }); } masterView.add(masterTable); //Creates navigation Window with master table var masterNavWindow = Ti.UI.iOS.createNavigationWindow({ window : masterView, }); //Event Listener for click event. If row has child, open child masterTable.addEventListener("click", function(c) { Ti.API.info(JSON.stringify(c)); if (c.row.hasChild) { Ti.API.info("Opening sub Table"); masterNavWindow.openWindow(c.row.childTable); } else { Ti.API.warn("c.row does not have child"); } }); //Create detail window var detailWindow = Ti.UI.createWindow({ title : "This is a detail Window", }); //Create detail View and add a label var detailView = Ti.UI.createView(); detailView.label = Ti.UI.createLabel({ text : "Hello World" }); detailView.add(detailView.label); detailWindow.add(detailView); //Create detail Navigation Window var detailNavWindow = Ti.UI.iOS.createNavigationWindow({ window : detailWindow, }); var self = Ti.UI.iPad.createSplitWindow({ backgroundColor : "#1B457E", masterView : masterNavWindow, detailView : detailNavWindow, showMasterInPortrait : true, }); var masterButton = Ti.UI.createButton({ title : "\u2630", }); detailWindow.leftNavButton = (detailWindow.orientation == Ti.UI.PORTRAIT || detailWindow.orientation == Ti.UI.UPSIDE_PORTRAIT) ? masterButton : null; //Button is used to hide/show masterView in portrait orientation masterButton.addEventListener("click", function(mastClick) { self.showMasterInPortrait = !masterOpen; masterOpen = !masterOpen; }); Ti.Gesture.addEventListener('orientationchange', function(e) { if (e.orientation == Ti.UI.PORTRAIT || e.orientation == Ti.UI.UPSIDE_PORTRAIT) { detailWindow.leftNavButton = masterButton; self.showMasterInPortrait = masterOpen; } else if (e.orientation == Ti.UI.LANDSCAPE_LEFT || e.orientation == Ti.UI.LANDSCAPE_RIGHT) { detailWindow.leftNavButton = null; self.showMasterInPortrait = false; } }); self.open();