当我从背景打开应用程序时,导航栏按钮框架未设置

时间:2012-02-28 12:07:44

标签: iphone xcode cocoa-touch ios5

在我的应用程序中,我使用自定义导航栏并在导航控制器中添加栏按钮项目,即后退按钮。 现在我的问题是当我关闭我的应用程序,然后再次从背景打开应用程序然后返回按钮框架从原始大小上升。 请建议我这样做的方法。

这是我的代码:

                  [self.navigationController.navigationBar setHidden:NO];

if([self isPad])
{
    if([self isPadPortrait]){
        UIImage *gradientImage1 = [[UIImage imageNamed:@"navigationbar_ipadPortrait.png"]
                                   resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
        [self.navigationController.navigationBar setBackgroundImage:gradientImage1 forBarMetrics:UIBarMetricsDefault];


        [self.navigationController.navigationBar setFrame:CGRectMake(0, 0, 768, 61)];

    }
    else if([self isPadLandscape]){

        UIImage *gradientImage2 = [[UIImage imageNamed:@"navigationbar_ipadLandscape.png"]
                                   resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
        [self.navigationController.navigationBar setBackgroundImage:gradientImage2 forBarMetrics:UIBarMetricsDefault];

        [self.navigationController.navigationBar setFrame:CGRectMake(0, 0, 1024, 61)];
    }

}
else{

    UIImage *gradientImage3 = [[UIImage imageNamed:@"navigationBarReady.png"]
                               resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)];


    [self.navigationController.navigationBar setBackgroundImage:gradientImage3 forBarMetrics:UIBarMetricsDefault];



    [self.navigationController.navigationBar setFrame:CGRectMake(0, 0, 320, 61)];


}
btnBack=[UIButton buttonWithType:UIButtonTypeCustom];
[btnBack addTarget:self action:@selector(btnBackPressed:) forControlEvents:UIControlEventTouchUpInside];
if([self isPad]){
    if([self isPadPortrait]){
        [btnBack setFrame:CGRectMake(0, 0, 150,44)];
    }else if([self isPadLandscape]){
        [btnBack setFrame:CGRectMake(-5, 0, 150,44)];
    }

}else{
    [btnBack setFrame:CGRectMake(0, 0, 51,41)];
}
backModifiedView=[[UIView alloc] initWithFrame:btnBack.frame];
if([self isPad]){

    [btnBack setImage:[UIImage imageNamed:@"btnBackIpad.png"] forState:UIControlStateNormal];

    [btnBack setFrame:CGRectMake(btnBack.frame.origin.x-15, btnBack.frame.origin.y, btnBack.frame.size.width, btnBack.frame.size.height)];

}
else{
    [btnBack setImage:[UIImage imageNamed:@"btnBack.png"] forState:UIControlStateNormal];

      [btnBack setFrame:CGRectMake(btnBack.frame.origin.x, btnBack.frame.origin.y-8, btnBack.frame.size.width, btnBack.frame.size.height)];
}
[backModifiedView addSubview:btnBack];
UIBarButtonItem *bbiLeft=[[UIBarButtonItem alloc] initWithCustomView:backModifiedView];

self.navigationItem.leftBarButtonItem=bbiLeft;

0 个答案:

没有答案