我在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;
}
但导航图像位置没有变化。两种模式下的框架保持相同。
请告诉我如何在导航控制器图像的情况下解决它。
答案 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);
}