2013-11-01 128 views
2

我试图添加自定义后退按钮导航栏上,但它没有在下面的工作是我的代码添加自定义后退按钮导航栏上

-(void)addLeftButton 
{ 
    UIImage *buttonImage = [UIImage imageNamed:@"btn_back.png"]; 

    UIButton *aButton = [UIButton buttonWithType:UIButtonTypeCustom]; 

    [aButton setBackgroundImage:buttonImage forState:UIControlStateNormal]; 

    aButton.frame = CGRectMake(0.0, 0.0, buttonImage.size.width, buttonImage.size.height); 

    UIBarButtonItem *aBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:aButton]; 

    [aButton addTarget:self action:nil forControlEvents:UIControlEventTouchUpInside]; 

    self.navigationItem.backBarButtonItem = aBarButtonItem; 
} 

请告诉什么是错,此代码

回答

5

试试这个。

-(void)addLeftButton 
{ 
    UIImage *buttonImage = [UIImage imageNamed:@"btn_back.png"]; 

    UIButton *aButton = [UIButton buttonWithType:UIButtonTypeCustom]; 

    [aButton setBackgroundImage:buttonImage forState:UIControlStateNormal]; 

    aButton.frame = CGRectMake(0.0, 0.0, buttonImage.size.width, buttonImage.size.height); 

    UIBarButtonItem *aBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:aButton]; 

    [aButton addTarget:self action:nil forControlEvents:UIControlEventTouchUpInside]; 

    [self.navigationItem setLeftBarButtonItem:aBarButtonItem]; 
} 
+0

这是左键不后退按钮@ Developer.iOS –

+0

它意味着你不希望把后退按钮在导航的左侧? –

+0

日Thnx家伙,它的工作 –

0

这里是我用来创建自定义的返回按钮

- (void)viewDidLoad 
    { 
     [super viewDidLoad]; 

    // Set the custom back button 

    //add the resizable image 
    UIImage *buttonImage = [[UIImage imageNamed:@"backbtn.png"] 
          resizableImageWithCapInsets:UIEdgeInsetsMake(0, 13, 0, 5)]; 

    //create the button and assign the image 
    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; 
    [button setBackgroundImage:buttonImage forState:UIControlStateNormal]; 

    MSLabel *lbl = [[MSLabel alloc] initWithFrame:CGRectMake(12, 4, 65, 28)]; 
    lbl.text = @"Settings"; 
    lbl.backgroundColor = [UIColor clearColor]; 
    //lbl.font = [UIFont fontWithName:@"Helvetica" size:12.0]; 
    lbl.numberOfLines = 0; 

    lbl.lineHeight = 12; 
    lbl.verticalAlignment = MSLabelVerticalAlignmentMiddle; 
    lbl.font = [UIFont fontWithName:@"Helvetica" size:12]; 

    [button addSubview:lbl]; 

    //set the frame of the button to the size of the image (see note below) 
    button.frame = CGRectMake(0, 0, 70, buttonImage.size.height); 
    [button addTarget:self action:@selector(back) forControlEvents:UIControlEventTouchUpInside]; 

    //create a UIBarButtonItem with the button as a custom view 
    UIBarButtonItem *customBarItem = [[UIBarButtonItem alloc] initWithCustomView:button]; 
    self.navigationItem.leftBarButtonItem = customBarItem; 

} 

-(void)back { 
    // Tell the controller to go back 
    [self.navigationController popViewControllerAnimated:YES]; 
} 

此代码将调整图片大小,因此它可以适应文本的代码。 你也可以用任何方法放置这个按钮。

0

您没有将操作添加到您的按钮。所以你需要添加行动到你的按钮。欲了解更多信息请参见下面的代码..

-(void)addLeftButton 
{ 
    UIImage *buttonImage = [UIImage imageNamed:@"btn_back.png"]; 

    UIButton *aButton = [UIButton buttonWithType:UIButtonTypeCustom]; 

    [aButton setBackgroundImage:buttonImage forState:UIControlStateNormal]; 

    aButton.frame = CGRectMake(0.0, 0.0, buttonImage.size.width, buttonImage.size.height); 

    UIBarButtonItem *aBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:aButton]; 

    [aButton addTarget:self action:@selector(backBtnPressed) forControlEvents:UIControlEventTouchUpInside]; // -------- Edit here ----- 

    self.navigationItem.backBarButtonItem = aBarButtonItem; 
} 

-(void)backBtnPressed 
{ 
     [self.navigationController popViewControllerAnimated:YES]; 
} 
+0

设置动作不事项@Dharambir –

+0

@GaganKumar感谢伙计那新的东西对我来说......感谢很多家伙.... –

相关问题