1

我在 appdelagte 类的 navigationcontroller 上添加了一个图像。并设置为

- (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;
}  

但导航图像位置没有改变。框架在两种模式下都保持不变。

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

4

2 回答 2

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

上面的代码应该写在UIViewController类中(LoginViewController在你的情况下),而不是AppDelegate.

如果你只需要纵向,使用这个:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation{
    return UIInterfaceOrientationIsPortrait(toInterfaceOrientation);
}
于 2012-04-12T11:19:58.250 回答
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);
}
于 2012-04-12T11:24:52.023 回答