Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6713071
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 26, 20262026-05-26T08:20:08+00:00 2026-05-26T08:20:08+00:00

Im writing an App for iPad using Orientation. The App-Delegate.h has a window, an

  • 0

Im writing an App for iPad using Orientation.
The App-Delegate.h has a window, an UIViewController, an UINavigationController and an UITabbarController:

@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet LoginRVC *loginRVC;
@property (nonatomic, retain) IBOutlet ChooseCameraRVC *chooseCameraRVC;
@property (nonatomic, retain) IBOutlet UITabBarController *hauptRVC;

Every Controller uses the “shouldAutorotateToInterfaceOrientation”-method to autorotate itself.

i change the views using:

[UIView beginAnimations:nil context:NULL];

and then

[loginRVC.view removeFromSuperview];
[_window addSubview:chooseCameraRVC.view];

and the other way around too, ofc.

So my problem is, when i am in the second view (chooseCameraRVC) and switch the orientation, then go back to my first view, its not rotated. It do autorotate but after the animation is completed.

I tried many things like calling “shouldAutorotateToInterfaceOrientation”-method of all views, not removing the views from window … but no success til now.

Is this maybe a “feature” of the simulator? (i hope not).

Pls help me.
Sharky


Ok. I prepared my source code to be presented here.

Note: I didn’t copy the methods which only has [super …] within or are completely commented out.

At first the AppDelegate.h:

#import <UIKit/UIKit.h>
#import "ChooseCameraRVC.h"
#import "LoginRVC.h"

@interface NetCoWatchAppDelegate : NSObject <UIApplicationDelegate>

@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet LoginRVC *loginRVC;
@property (nonatomic, retain) IBOutlet ChooseCameraRVC *chooseCameraRVC;

-(void)changeView:(id)sender:(BOOL)direction;

@end

AppDelegate.m:

#import "NetCoWatchAppDelegate.h"
#import "LoginRVC.h"
#import "ChooseCameraRVC.h"
#import "ChooseCameraVC.h"

@implementation NetCoWatchAppDelegate

@synthesize window = _window;
@synthesize loginRVC, chooseCameraRVC;

-(void)changeView:(id)sender:(BOOL)direction{ 
    //configure animation
    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:2];
    if(sender == loginRVC){ //sender is LoginView 
        [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:_window cache:YES];
        [loginRVC.view removeFromSuperview];
        [_window addSubview:chooseCameraRVC.view];
    }else if(sender == chooseCameraRVC){ 
        [chooseCameraRVC.view removeFromSuperview];
        if(!direction){  //FlipFromRight = YES, ...left = NO
            [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:_window cache:YES];        
            [_window addSubview:loginRVC.view];
        }   

    }else if([sender class] == [ChooseCameraVC class]){
        [chooseCameraRVC.view removeFromSuperview];
        if(!direction){ //Camera gewählt //FlipFromRight = YES, ...left = NO
            [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:_window cache:YES];
            [_window addSubview:loginRVC.view];
        }

    }else { //default solution
        UIAlertView *av = [[UIAlertView alloc] initWithTitle:@"Bad Value" message:[[sender class] description] delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
        [av show];
        [av release];
    }
    [UIView commitAnimations]; //start animation
}

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // Override point for customization after application launch.
    // Add the navigation controller's view to the window and display.
    [self.window makeKeyAndVisible];
    return YES;
}

- (void)dealloc
{
    [_window release];
    [loginRVC release];
    [chooseCameraRVC release];
    [super dealloc];
}

@end

The LoginRVC.h:

#import <UIKit/UIKit.h>

@interface LoginRVC : UIViewController <UITextFieldDelegate>{
    NSMutableArray *usernameArray;
    NSMutableArray *passwordArray;
}

@property (nonatomic, retain) IBOutlet UITextField *usernameTF;
@property (nonatomic, retain) IBOutlet UITextField *passwordTF;
@property (nonatomic, retain) IBOutlet UIButton *loginBn;
@property (nonatomic, retain) IBOutlet UISwitch *saveUsernameSwitch;

-(IBAction)tryLogin:(id)sender;
-(IBAction)closeKeyboard:(id)sender;

@end

The LoginRVC.m:

#import "LoginRVC.h"
#import "NetCoWatchAppDelegate.h"

@implementation LoginRVC

@synthesize usernameTF, passwordTF, loginBn, saveUsernameSwitch;

-(IBAction)tryLogin:(id)sender{
    //login successful if the textfields are euqal with an existing account
#warning Access the data base and search for the account.
    bool accountFound = NO;
    for (int i=0; i<usernameArray.count; i++) {
        if([[usernameArray objectAtIndex:i] isEqualToString:usernameTF.text] 
           && [[passwordArray objectAtIndex:i] isEqualToString:passwordTF.text]){
            accountFound = YES;
            break;
        }
    }
    if(accountFound)
    { //login successful - now change the values and then the view
        if(![saveUsernameSwitch isOn])
            usernameTF.text = @"";
        passwordTF.text = @"";
        NetCoWatchAppDelegate *main = (NetCoWatchAppDelegate*)[[UIApplication sharedApplication] delegate];
        [main changeView:self:YES];
    }else{ //login failt - show a popup window for the user
        UIAlertView *av = [[UIAlertView alloc] initWithTitle:@"Login fehlgeschlagen" message:@"Username oder Passwort falsch!" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
        [av show];
        [av release];
    }
}

-(IBAction)closeKeyboard:(id)sender{
    if([passwordTF isFirstResponder])
        [passwordTF resignFirstResponder];
    else
        [usernameTF resignFirstResponder];
}

// this helps dismiss the keyboard then the "done" button is clicked
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
    if(textField == usernameTF){ //move to password textfield
        [textField resignFirstResponder];
        [passwordTF becomeFirstResponder];
    }else if(textField == passwordTF){ //textField == passwordTF -> try to login
        [textField resignFirstResponder];
        [self tryLogin:self];
    }
    return YES;
}

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization    
    }
    return self;
}

#pragma mark - View lifecycle

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.textFieldRounded.autocorrectionType = UITextAutocorrectionTypeNo;    // no auto correction support
#warning Define right keyboard type.
    usernameArray = [[NSMutableArray alloc] initWithObjects:@"dkoehn", @"bmazanek", @"sbehne", @"mballhausen", @"efiedler", @"bbraasch", @"azuber", @"tstolt", nil];
    passwordArray = [[NSMutableArray alloc] initWithObjects:@"test1",@"test2",@"test3",@"test4",@"test5",@"test6",@"test7",@"test8", nil];

//    usernameTF.keyboardType = UIKeyboardTypeEmailAddress;

    [usernameTF becomeFirstResponder]; //get first focus when the app stars
    //set return key on the keyboard and the delegate for an action
    usernameTF.returnKeyType = UIReturnKeyNext;  // type of the return key
    passwordTF.returnKeyType = UIReturnKeyGo;
    //set delegate to connect with a method "-(BOOL)textFieldShouldReturn:(UITextField *)textField"
    usernameTF.delegate = self;
    passwordTF.delegate = self;
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{    
    // Return YES for supported orientations
    return YES;
}

@end

The ChooseCameraRVC.h:

#import <UIKit/UIKit.h>

@interface ChooseCameraRVC : UINavigationController <UINavigationControllerDelegate>

@property (nonatomic, retain) IBOutlet UIBarButtonItem *zurueckBN;

-(IBAction)exitToLoginView:(id)sender;

@end

The ChooseCameraRVC.m:

#import "ChooseCameraRVC.h"
#import "NetCoWatchAppDelegate.h"
#import "ChooseCameraCell.h"

@implementation ChooseCameraRVC

@synthesize zurueckBN;

-(IBAction)exitToLoginView:(id)sender{
#warning Eventually logout the User.

    //change the view
    [((NetCoWatchAppDelegate*)[[UIApplication sharedApplication] delegate]) changeView:self:NO];
}

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{    
    // Return YES for supported orientations
    return YES;
}

@end

ChooseCameraVC.h:

#import <UIKit/UIKit.h>

@interface ChooseCameraVC : UITableViewController <UITableViewDelegate>

@end

and the ChooseCameraVC.m:

#import "ChooseCameraVC.h"
#import "ChooseCameraCell.h"
#import "NetCoWatchAppDelegate.h"

@implementation ChooseCameraVC

- (id)initWithStyle:(UITableViewStyle)style
{
    self = [super initWithStyle:style];
    if (self) {
        // Custom initialization
    }
    return self;
} 

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    // Return YES for supported orientations
    return YES;
}

#pragma mark - Table view data source

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
#warning Customize the number of sections if grouped. 
    // Return the number of sections.
    return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    // Return the number of rows in the section.
#warning Get count of cameras out of the data base.
    return 5;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{    
    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
    }
    // Configure the cell...
    cell.textLabel.text = @"Camera";
    return cell;
}    

@end

I hope u can find the problem.

Greetings. $h@rky

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-26T08:20:09+00:00Added an answer on May 26, 2026 at 8:20 am

    now i found my mistake. as u can see i have the views as variables in the app delegate. so if the second view changes the orientation, the other ones didn’t know a thing about it. if the view now changes the “new” one recognizes the orientation change AFTER the animation, so while the animation is running, the “new” view has the wrong orientation.

    So if u want to switch a view, just create a new one because it gets initialized with the right orientation.

    kind regards
    $h@rky

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I'm writing an iPad app with a UITabBarController. At the moment it has two
Currently I am writing an iPad app. I am using a lot of images
I'm writing a web app for the iPad using HTML5 and SenchaTouch. The app
I am writing an iPad app that has a UIWebView and an activity indicator
Hi I started writing a split view app for iPad using the split-view template.
I'm writing a website/iPad app (using PhoneGap ), where I have 1024x768 images on
I'm writing a web app for the iPad ( not a regular App Store
I'm writing an app using asp.net-mvc deploying to iis6. I'm using forms authentication. Usually
For the iPad imaging app I am writing I have include the ability to
I am writing an iPad app that downloads a rather large .csv file and

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.