如何在iPad应用程序中管理方向

时间:2012-04-12 11:05:28

标签: objective-c ipad

我在appdelagte类的navigationcontroller上添加了一个图像。

中设置为yes
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    loginViewController = [[LoginViewController alloc]initWithNibName:@"LoginViewController" bundle:nil];

    [self.window addSubview:_navController.view];

    _navController.navigationBarHidden = NO;
    navimage = [[UIImageView alloc] init];
    navimage.frame = CGRectMake(300, 18, 177, 47);

    navimage.image = [UIImage imageNamed: @"logo.png"];  

    [_navController.view addSubview:navimage];
    [self.window makeKeyAndVisible];
    return YES;
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation{
return YES;
}  

但导航图像位置没有变化。两种模式下的框架保持相同。

请告诉我如何在导航控制器图像的情况下解决它。

2 个答案:

答案 0 :(得分:1)

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation{
    return YES;
}

上面的代码应该写在UIViewController类(在您的情况下为LoginViewController),但不在AppDelegate中。

如果您只需要纵向方向,请使用:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation{
    return UIInterfaceOrientationIsPortrait(toInterfaceOrientation);
}

答案 1 :(得分:1)

您应该在控制器viewDidLoad方法中添加它,并在控制器中添加shouldAutorotateToInterfaceOrientation。

-(void)viewDidLoad{
 navimage = [[UIImageView alloc] init];
 navimage.frame = CGRectMake(300, 18, 177, 47);

 navimage.image = [UIImage imageNamed: @"logo.png"];  

 [_navController.view addSubview:navimage];
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation{
 return UIInterfaceOrientationIsPortrait(toInterfaceOrientation);
}