Sunday, November 4, 2012

How to use should autorotate(ios 6) with navigation controller

Keyword: ios6, navigation controller, delegate, rotation, category,should Autoraotate, interface orientation

Get contacts of all your emergency needs on single tap. Download Quick-Finder for iPhone

How to use should autorotate(ios 6) with navigation controller

1)Take a project named AutoRotationSample
- project should be of empty application
- uncheck storyboard option.
- follow the below image.















                                                                       
  2) Now add new file of Subclass of UINavigationController






3) Now add two more view controllers named firstViewController and secondViewController
4) open AppDelegate.h and modify the code as follow (modified code is in different color)



#import <UIKit/UIKit.h>
#import "firstViewController.h"

@interface AppDelegate : UIResponder <UIApplicationDelegate>

@property (strong, nonatomic) UIWindow *window;
@property (nonatomic,retain) UINavigationController *customNavigation;
@property (nonatomic,retain)firstViewController *first;

@end


5) Open AppDelegate.m and import two files as

    #import "firstViewController.h"
    #import "CustomNavigationController.h"

and synthesize two variables as 

   @synthesize first;
   @synthesize customNavigation;

6) Now modify didFinishLaunchingMethod  as (modified code is in different color)


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];

    self.first = [[[firstViewController alloc] initWithNibName:@"firstViewController" bundle:nil]   autorelease];
    self.customNavigation=[[CustomNavigationController alloc ]initWithRootViewController:self.first];
    self.window.rootViewController = self.customNavigation;
    [self.window makeKeyAndVisible];
    return YES;
}



7) Now open CustomNavigationController.m and Implement two methods  as 
  

-(BOOL)shouldAutorotate
{
    return YES;
  
}


-(NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskAll;

}

8) Now every view of your app supports auto rotating.


Note: If you want to auto rotate only one view than

In CustomNavigationController.m modify the code as 



-(BOOL)shouldAutorotate
{
    //return YES;
    return [self.navigationController.topViewController shouldAutorotate];
  
}

in this case you should implement    

 -(BOOL)shouldAutorotate
{
     return YES;
}

in viewcontroller which u want to rotate.














2 comments:

  1. Awesome Blog. Thanks. Do keep posting such good blogs. Thanks for sharing Informative posts.
    ---------------------------------------------------------------------
    iPhone App Development And Android Application Development

    ReplyDelete
  2. Hai Good information shared about IOS. In future everything about ios . This blog post is really helpful. Please keep updated tutorials…

    ReplyDelete