{ "id": "80935", "key": "TIMOB-5419", "fields": { "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false }, "project": { "id": "10153", "key": "TIMOB", "name": "Titanium SDK/CLI", "projectCategory": { "id": "10100", "description": "Titanium and related SDKs used in application development", "name": "Client" } }, "fixVersions": [], "resolution": { "id": "2", "description": "The problem described is an issue which will never be fixed.", "name": "Won't Fix" }, "resolutiondate": "2012-01-26T12:34:51.000+0000", "created": "2011-10-03T16:58:19.000+0000", "priority": { "name": "Low", "id": "4" }, "labels": [], "versions": [ { "id": "11331", "description": "", "name": "Release 1.8.0", "archived": true, "released": true, "releaseDate": "2011-10-31" } ], "issuelinks": [], "assignee": { "name": "ngupta", "key": "ngupta", "displayName": "Neeraj Gupta", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2017-03-22T21:38:21.000+0000", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "components": [ { "id": "10206", "name": "iOS", "description": "iOS Platform" } ], "description": "If a splitWindow is placed within a tabgroup, the visible event is lost and you cannot remove the leftNavButton on rotation. In the provided example, the 'visible' alert will only popup when the app is loaded.\r\n\r\n{code:title=app.js}\r\nvar tabGroup = Ti.UI.createTabGroup();\r\n\r\nvar window = Ti.UI.createWindow({ \r\n Title:'Super Win',\r\n navBarHidden: true,\r\n barColor:'#336699'\r\n\r\n});\r\n\r\nvar master = Ti.UI.createWindow({\r\n title:'Master',\r\n barColor:'#336699'\r\n});\r\n\r\nvar detail = Ti.UI.createWindow({\r\n title:'Detail',\r\n backgroundColor:'blue',\r\n barColor:'#336699'\r\n});\r\nmaster.navigation = Ti.UI.iPhone.createNavigationGroup({ \r\n window: master \r\n});\r\n\r\nvar data = [{title:\"Appcelerator\", url:'http://www.appcelerator.com'},{title:\"Google\", url:'http://www.google.com'}];\r\n\r\nvar table = Titanium.UI.createTableView({\r\n data:data\r\n});\r\n\r\nmaster.add(table);\r\n\r\ndetail.navigation = Ti.UI.iPhone.createNavigationGroup({ \r\n window: detail\r\n});\r\n\r\nvar windowSplit = Ti.UI.iPad.createSplitWindow({ \r\n masterView: master.navigation, \r\n detailView: detail.navigation\r\n //barColor:'#336699' - This property does not exist on SplitWindow\r\n});\r\n\r\n\r\nwindowSplit.addEventListener('visible', function(e) {\r\n\talert('visible');\r\n if (e.view == 'detail') {\r\n e.button.title = \"Popover\";\r\n detail.leftNavButton = e.button;\r\n }\r\n else if (e.view == 'master') {\r\n detail.leftNavButton = null;\r\n }\r\n});\r\n\r\n\r\nwindow.add(windowSplit);\r\n\r\nvar tab1 = Ti.UI.createTab({ \r\n title: \"Split\", \r\n //window: windowSplit,//\r\n window:window, //TOGGLE ME TO SEE THE DIFFERENCES...............................\r\n icon: \"KS_nav_views.png\" \r\n});\r\n\r\nvar win2 = Titanium.UI.createWindow({\r\n title:'Tab 2', \r\n backgroundColor:'#fff',\r\n barColor:'red'\r\n});\r\n\r\nvar label2 = Titanium.UI.createLabel({ \r\n color:'#999', \r\n text:'I am Window 2', \r\n font:{fontSize:20,fontFamily:'Helvetica Neue'}, \r\n textAlign:'center', \r\n width:'auto'\r\n});\r\n\r\nwin2.add(label2);\r\n\r\nvar tab2 = Ti.UI.createTab({ \r\n title: \"Other\", \r\n window: win2, \r\n icon: \"KS_nav_ui.png\" \r\n});\r\n\r\ntabGroup.addTab(tab1); \r\ntabGroup.addTab(tab2); \r\n\r\ntabGroup.open();\r\n\r\ntable.addEventListener('click', function(e){\r\n var webview = Ti.UI.createWebView({\r\n url:e.rowData.url\r\n });\r\n detail.add(webview);\r\n});\r\n\r\n{code}", "attachment": [], "flagged": false, "summary": "SplitWindow loses 'visible' event when inside tabgroup or window", "creator": { "name": "aleard", "key": "aleard", "displayName": "Alan Leard", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "aleard", "key": "aleard", "displayName": "Alan Leard", "active": true, "timeZone": "America/Los_Angeles" }, "environment": "iOS iPad simulator and Device", "comment": { "comments": [ { "id": "180721", "author": { "name": "stephentramer", "key": "stephentramer", "displayName": "Stephen Tramer", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Documentation states that you cannot place split windows in tab groups, nav groups, or other windows.", "updateAuthor": { "name": "stephentramer", "key": "stephentramer", "displayName": "Stephen Tramer", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-01-26T12:34:51.000+0000", "updated": "2012-01-26T12:34:51.000+0000" }, { "id": "180723", "author": { "name": "blankenshipb", "key": "blankenshipb", "displayName": "Brian Blankenship", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Stephen, I can understand how one might interpret it this way, but I spoke to Blain Hammond specifically about this at Codestrong and he agreed this was something that should work and be fixed. Apple themselves have apps with SplitWindows in Tab Groups (at least in the way we have been trying to use them).", "updateAuthor": { "name": "blankenshipb", "key": "blankenshipb", "displayName": "Brian Blankenship", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-01-26T12:47:07.000+0000", "updated": "2012-01-26T12:47:07.000+0000" }, { "id": "180725", "author": { "name": "stephentramer", "key": "stephentramer", "displayName": "Stephen Tramer", "active": true, "timeZone": "America/Los_Angeles" }, "body": "HIG states that tabs can be used inside of a split view, but split views cannot be used inside tab groups.\r\n\r\nThis bug describes the latter. See TIMOB-1060 - some applications emulate split views to make them work inside of a tab group. iOS 5 also appears to remove the restriction that split views must be the \"root\" view of an application, but it is unclear if this is the case on earlier iOS revs.", "updateAuthor": { "name": "stephentramer", "key": "stephentramer", "displayName": "Stephen Tramer", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-01-26T13:12:50.000+0000", "updated": "2012-01-26T13:16:47.000+0000" }, { "id": "180726", "author": { "name": "blainhamon", "key": "blainhamon", "displayName": "Blain Hamon", "active": true, "timeZone": "America/Los_Angeles" }, "body": "I don't exactly recall, or possibly misunderstood. The code example itself is an invalid use case, as the split view is inside the tab group, not the other way around. [Apple Documentation|http://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/MobileHIG/UIElementGuidelines/UIElementGuidelines.html#//apple_ref/doc/uid/TP40006556-CH13-SW52] states: \r\n{quote}\r\nOn iPad, you might use a tab bar in a split view pane or a popover if the tabs switch or filter the content within that view. However, it often works better to use a segmented control at the bottom edge of a popover or split view pane, because the appearance of a segmented control coordinates better with the popover or split view appearance. (For more information on using a segmented control, see “Segmented Control.”)\r\n{quote}\r\nThe takeaway here is that the tab group should be inside the split view, perhaps as the main panel in the split view.\r\n\r\nI'm also curious as to which Apple apps do otherwise.", "updateAuthor": { "name": "blainhamon", "key": "blainhamon", "displayName": "Blain Hamon", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-01-26T13:25:42.000+0000", "updated": "2012-01-26T13:25:42.000+0000" }, { "id": "180732", "author": { "name": "blankenshipb", "key": "blankenshipb", "displayName": "Brian Blankenship", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Thanks for the followup. The best example of an Apple app I had (at the time of reporting this) was the iTunes Festival app... seems to naturally be no longer available on App Store now, but it did this.", "updateAuthor": { "name": "blankenshipb", "key": "blankenshipb", "displayName": "Brian Blankenship", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2012-01-26T13:51:16.000+0000", "updated": "2012-01-26T13:51:16.000+0000" }, { "id": "415023", "author": { "name": "lmorris", "key": "lmorris", "displayName": "Lee Morris", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Closing ticket as \"Won't Fix\".", "updateAuthor": { "name": "lmorris", "key": "lmorris", "displayName": "Lee Morris", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2017-03-22T21:38:21.000+0000", "updated": "2017-03-22T21:38:21.000+0000" } ], "maxResults": 7, "total": 7, "startAt": 0 } } }