You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by sh...@apache.org on 2012/08/31 01:20:02 UTC
ios commit: [CB-1315] Setting the view controller's view size in
viewWillAppear, use rootViewController
Updated Branches:
refs/heads/master 9510225b1 -> cb33d9ffa
[CB-1315] Setting the view controller's view size in viewWillAppear, use rootViewController
Starting in iOS 4, the recommended way for managing views and view controllers with respect to a `UIWindow` instance is through UIWindow's `rootViewController` property, as opposed to the previous method of adding the view via `addSubview`. Updated the inheriting view controllers and app delegates to follow the recommended pattern.
**Note:** This also requires moving the code that sets the default view's frame size to the view controller's `viewWillAppear` method. This code is managed in the consuming app's view controller (as opposed to `CDVViewController`), in the interests of Cordova modularity in developers' apps.
Project: http://git-wip-us.apache.org/repos/asf/incubator-cordova-ios/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-cordova-ios/commit/cb33d9ff
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cordova-ios/tree/cb33d9ff
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cordova-ios/diff/cb33d9ff
Branch: refs/heads/master
Commit: cb33d9ffad9cf0096de8d9ceb4f98ea0b5cb98dc
Parents: 9510225
Author: Kevin Hawkins <kh...@salesforce.com>
Authored: Tue Aug 7 11:31:30 2012 -0700
Committer: Shazron Abdullah <sh...@apache.org>
Committed: Thu Aug 30 16:18:44 2012 -0700
----------------------------------------------------------------------
CordovaLib/CordovaLibApp/AppDelegate.m | 6 +++---
CordovaLib/CordovaLibApp/ViewController.m | 9 +++++++++
.../project/__TESTING__/Classes/AppDelegate.m | 5 ++---
.../__TESTING__/Classes/MainViewController.m | 9 +++++++++
4 files changed, 23 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-cordova-ios/blob/cb33d9ff/CordovaLib/CordovaLibApp/AppDelegate.m
----------------------------------------------------------------------
diff --git a/CordovaLib/CordovaLibApp/AppDelegate.m b/CordovaLib/CordovaLibApp/AppDelegate.m
index 9e118b7..2a719d8 100644
--- a/CordovaLib/CordovaLibApp/AppDelegate.m
+++ b/CordovaLib/CordovaLibApp/AppDelegate.m
@@ -40,14 +40,14 @@
- (void)createViewController {
NSAssert(!self.viewController, @"ViewController already created.");
- CGRect viewBounds = [[UIScreen mainScreen] applicationFrame];
self.viewController = [[ViewController alloc] init];
self.viewController.useSplashScreen = YES;
self.viewController.wwwFolderName = @"www";
self.viewController.startPage = @"index.html";
- self.viewController.view.frame = viewBounds;
-
+
+ // NOTE: To control the view's frame size, override [self.viewController viewWillAppear:] in your view controller.
+
self.window.rootViewController = self.viewController;
}
http://git-wip-us.apache.org/repos/asf/incubator-cordova-ios/blob/cb33d9ff/CordovaLib/CordovaLibApp/ViewController.m
----------------------------------------------------------------------
diff --git a/CordovaLib/CordovaLibApp/ViewController.m b/CordovaLib/CordovaLibApp/ViewController.m
index 6259862..68c608b 100644
--- a/CordovaLib/CordovaLibApp/ViewController.m
+++ b/CordovaLib/CordovaLibApp/ViewController.m
@@ -25,6 +25,15 @@
@implementation ViewController
+- (void)viewWillAppear:(BOOL)animated
+{
+ // Set the main view to utilize the entire application frame space of the device.
+ // Change this to suit your view's UI footprint needs in your application.
+ self.view.frame = [[UIScreen mainScreen] applicationFrame];
+
+ [super viewWillAppear:animated];
+}
+
- (void)viewDidLoad
{
[super viewDidLoad];
http://git-wip-us.apache.org/repos/asf/incubator-cordova-ios/blob/cb33d9ff/bin/templates/project/__TESTING__/Classes/AppDelegate.m
----------------------------------------------------------------------
diff --git a/bin/templates/project/__TESTING__/Classes/AppDelegate.m b/bin/templates/project/__TESTING__/Classes/AppDelegate.m
index c1b36fa..a6d5db1 100644
--- a/bin/templates/project/__TESTING__/Classes/AppDelegate.m
+++ b/bin/templates/project/__TESTING__/Classes/AppDelegate.m
@@ -66,14 +66,13 @@
self.window = [[UIWindow alloc] initWithFrame:screenBounds];
self.window.autoresizesSubviews = YES;
- CGRect viewBounds = [[UIScreen mainScreen] applicationFrame];
-
self.viewController = [[MainViewController alloc] init];
self.viewController.useSplashScreen = YES;
self.viewController.wwwFolderName = @"www";
self.viewController.startPage = @"index.html";
self.viewController.invokeString = invokeString;
- self.viewController.view.frame = viewBounds;
+
+ // NOTE: To control the view's frame size, override [self.viewController viewWillAppear:] in your view controller.
// check whether the current orientation is supported: if it is, keep it, rather than forcing a rotation
BOOL forceStartupRotation = YES;
http://git-wip-us.apache.org/repos/asf/incubator-cordova-ios/blob/cb33d9ff/bin/templates/project/__TESTING__/Classes/MainViewController.m
----------------------------------------------------------------------
diff --git a/bin/templates/project/__TESTING__/Classes/MainViewController.m b/bin/templates/project/__TESTING__/Classes/MainViewController.m
index b4c8e00..d0a55bf 100644
--- a/bin/templates/project/__TESTING__/Classes/MainViewController.m
+++ b/bin/templates/project/__TESTING__/Classes/MainViewController.m
@@ -48,6 +48,15 @@
#pragma mark - View lifecycle
+- (void)viewWillAppear:(BOOL)animated
+{
+ // Set the main view to utilize the entire application frame space of the device.
+ // Change this to suit your view's UI footprint needs in your application.
+ self.view.frame = [[UIScreen mainScreen] applicationFrame];
+
+ [super viewWillAppear:animated];
+}
+
- (void) viewDidLoad
{
[super viewDidLoad];