Quantcast
Channel: Appcelerator Developer Center Q&A Unanswered Questions 20
Viewing all articles
Browse latest Browse all 8068

iOS8: iPad SplitWindow - Hiding master view breaks Navigation Window

$
0
0

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();

Viewing all articles
Browse latest Browse all 8068

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>