{ "id": "119400", "key": "ALOY-815", "fields": { "issuetype": { "id": "2", "description": "A new feature of the product, which has yet to be developed.", "name": "New Feature", "subtask": false }, "project": { "id": "11113", "key": "ALOY", "name": "Alloy", "projectCategory": { "id": "10400", "description": "Tools for developing applications", "name": "Tooling" } }, "fixVersions": [ { "id": "15403", "description": "Alloy 1.3.0", "name": "Alloy 1.3.0", "archived": false, "released": true, "releaseDate": "2013-12-20" }, { "id": "15602", "description": "Alloy 1.2.2", "name": "Alloy 1.2.2", "archived": false, "released": true, "releaseDate": "2013-09-18" }, { "id": "15670", "description": "2013 Sprint 18", "name": "2013 Sprint 18", "archived": true, "released": true, "releaseDate": "2013-09-06" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2013-10-28T21:55:06.000+0000", "created": "2013-09-03T19:13:49.000+0000", "priority": { "name": "Medium", "id": "3" }, "labels": [ "qe-testadded" ], "versions": [], "issuelinks": [ { "id": "31551", "type": { "id": "10000", "name": "Blocks", "inward": "is blocked by", "outward": "blocks" }, "inwardIssue": { "id": "119462", "key": "ALOY-818", "fields": { "summary": "iOS7: NavigationWindow should work also inside Ti.UI.iPad.SplitWindow", "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" } }, "priority": { "name": "High", "id": "2" }, "issuetype": { "id": "4", "description": "An improvement or enhancement to an existing feature or task.", "name": "Improvement", "subtask": false } } } }, { "id": "31812", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "119913", "key": "ALOY-824", "fields": { "summary": "Update NavigationWindow sample app", "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" } }, "priority": { "name": "High", "id": "2" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } } ], "assignee": { "name": "tlukasavage", "key": "tlukasavage", "displayName": "Tony Lukasavage", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2013-10-28T21:55:11.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": "12329", "name": "Runtime", "description": "Generic bucket for uncategorized runtime issues" }, { "id": "12326", "name": "XML", "description": "View XML and parsing" } ], "description": "h5. Feature description\r\n\r\nWith the new iOS 7 the new \"navigationWindow\" API has been introduced for handling the navigation logic for iOS 7. \r\n\r\nUsing a classic Titanium project, the sample code would be:\r\n{code}\r\nvar rootWin = Ti.UI.createWindow({\r\n\tbackgroundColor:\"white\"\r\n});\r\n\r\nvar navWin = Ti.UI.iOS.createNavigationWindow({\r\n\twindow:rootWin\r\n});\r\n\r\nvar secondWin = Ti.UI.createWindow({\r\n\tbackgroundColor:\"blue\"\r\n});\r\n\r\nvar b1 = Ti.UI.createButton({\r\n\ttitle:\"PUSH\"\r\n});\r\nrootWin.add(b1);\r\n\r\nvar b2 = Ti.UI.createButton({\r\n\ttitle:\"POP\"\r\n});\r\n\r\n\r\nsecondWin.add(b2);\r\n\r\nb1.addEventListener('click',function(){\r\n\tnavWin.push(secondWin)\r\n});\r\n\r\nb2.addEventListener('click',function(){\r\n\tnavWin.pop(secondWin)\r\n});\r\n\r\nnavWin.open();\r\n{code}\r\n\r\n\r\nh5. Details\r\n\r\nnavigationWindow is supposed to be the top-level container (is a Window proxy, not a View).\r\n\r\nIs going to work as alternative Ti.UI.iPhone.NavigationGroup (which is going to be deprecated)\r\n\r\nShould also work if used in Ti.UI.iPad.SplitWindow.\r\n\r\n\r\nh5. Notes\r\n\r\nI think the expected behavior is to be able to use it pretty much in this way:\r\n\r\n{code}\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n{code}\r\n\r\nThen I guess that windows could be added or removed from the navigationWindow using something like:\r\n{code}\r\nvar newWin = Alloy.createController('newWin').getView();\r\n$.navigation.push(newWin);\r\n{code}\r\n\r\nand\r\n\r\n{code}\r\n$.navigation.pop(newWin);\r\n{code}\r\n\r\n\r\nh5. Additional info\r\nAttached you can find also an Alloy sample code using the navigationWindow element defined in the index controller instead of in the .xml markup\r\n", "attachment": [ { "id": "42089", "filename": "alloy_navigationWindowSample.zip", "author": { "name": "fcasali", "key": "fcasali", "displayName": "Federico Casali", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-09-03T19:15:07.000+0000", "size": 3836715, "mimeType": "application/zip" } ], "flagged": false, "summary": "iOS 7: add 'navigationWindow' API to XML markup", "creator": { "name": "fcasali", "key": "fcasali", "displayName": "Federico Casali", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "fcasali", "key": "fcasali", "displayName": "Federico Casali", "active": true, "timeZone": "America/Los_Angeles" }, "environment": "iOS7\r\nXcode 5 beta6\r\nTiSDK 3.1.3.v20130902103448\r\nAlloy 1.2.1", "comment": { "comments": [ { "id": "269425", "author": { "name": "tlukasavage", "key": "tlukasavage", "displayName": "Tony Lukasavage", "active": true, "timeZone": "America/Los_Angeles" }, "body": "PR (master): https://github.com/appcelerator/alloy/pull/237\r\ncommit (1_2_X): https://github.com/appcelerator/alloy/commit/3f6c1e0372a1276904bf61d80066e7e28584324a\r\ntest app: https://github.com/appcelerator/alloy/tree/master/test/apps/ui/navwindow\r\n\r\nFunctional test for both branches:\r\n\r\n# Run the test app on ios\r\n# Ensure that it loads without error\r\n# Click the \"push\" button to push another window onto the stack\r\n# On the resulting window, click the \"push\" button in the nav bar to push another window onto the stack \r\n# Click the \"pop\" button in the nav bar on the resulting window to remove the current window from the stack\r\n# Try multiple pushes and/or pops and ensure that the navigation behaves as expected", "updateAuthor": { "name": "tlukasavage", "key": "tlukasavage", "displayName": "Tony Lukasavage", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-09-04T03:16:32.000+0000", "updated": "2013-09-04T03:16:32.000+0000" } ], "maxResults": 3, "total": 3, "startAt": 0 } } }