Can we use the same Xib (which contains UIView) to support landscape and portrait orientation

advertisements

I have a ViewController (searchListViewController) in my storyboard. This ViewController is embedded in a navigationController. The ViewController in storyboard rotates properly when orientation changes.

I have an XIB which contains an UIView (CustomAlertView). I want to present this CustomAlertView from my searchListViewController.

To do this, i have included the following code in my searchListViewController class.

searchListViewController.m:

-(void)loadCustomAlertView
{

     NSArray *allviews = [[NSBundle mainBundle] loadNibNamed:@"CustomAlertView" owner:self options:nil];
     CustomAlertView *customAlertView_Obj = allviews[0];
    [self.navigationController.view addSubview:customAlertView_Obj];
}

The Problem is: the parent navigation controller rotates properly, but the child "CustomAlertView" does not rotate when the orientation changes. Am i doing anything wrong in this code?

Is there anyway to handle rotations for an XIB file programmatically?

I want to use the same CustomAlertView XIB for both Portrait and Landscape. Is it possible?


YES, you can use same xib file for both orientations.

Using Auto-resizing/auto-repositioning constraints (in "Size Inspector Tab") and auto-layouts(iOS6 and above), define properties of your objects so that when your screen orientation changes, all the views inside your parent view get aligned and/or repositioned, resized.

You can view how your view looks in different orientations by changing orientation from "Attributes Inspector Tab".