我正在所有类中创建条形按钮。有没有办法只创建一次条形按钮并在所有类中使用它?

时间:2013-01-18 07:31:30

标签: iphone ios objective-c ipad cocoa-touch

我正在所有课程中创建bar button。无论如何只能编写一次这个代码并在所有类中使用?

 toolbar = [[UIToolbar alloc]
               initWithFrame:CGRectMake(90, 0, 100, 45)];
    toolbar.tintColor=self.navigationController.navigationBar.tintColor;

    // create an array for the buttons
    NSMutableArray* buttonsArray = [[NSMutableArray alloc] initWithCapacity:2];

    // create a standard save button

    UIImage *buttonImage = [UIImage imageNamed:@"home.png"];

    UIButton *homeButton = [UIButton buttonWithType:UIButtonTypeCustom];
    [homeButton setImage:buttonImage forState:UIControlStateNormal];


    homeButton.frame = CGRectMake(100,2, 35, 35);

    [homeButton addTarget:self action:@selector(homeButtonpress) forControlEvents:UIControlEventTouchUpInside];

    UIBarButtonItem *customHomeBarItem = [[UIBarButtonItem alloc] initWithCustomView:homeButton];

    [buttonsArray addObject:customHomeBarItem];
    [customHomeBarItem release];


    UIImage *logoutImg=[UIImage imageNamed:@"power.png"];

    UIButton *logOutBtn=[UIButton buttonWithType:UIButtonTypeCustom];

    [logOutBtn setImage:logoutImg forState:UIControlStateNormal];

    [logOutBtn addTarget:self action:@selector(logOutButtonPress) forControlEvents:UIControlEventTouchUpInside];


    logOutBtn.frame=CGRectMake(0, 2, 35, 40);


    UIBarButtonItem *customLogOutButton=[[UIBarButtonItem alloc]initWithCustomView:logOutBtn];

    [buttonsArray addObject:customLogOutButton];
    [customLogOutButton release];


    [toolbar setItems:buttonsArray animated:NO];
    [buttonsArray release];

    // place the toolbar into the navigation bar
    self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:toolbar];
    [toolbar release];

1 个答案:

答案 0 :(得分:3)

  
      
  1. 创建实用程序类
  2.   
  3. 添加用于创建&的类方法返回UIBarButtonItem。
  4.   
  5. 在.pch或要使用它的类中导入Utility.h。
  6.   

<强> Utility.m

+ (UIBarButtonItem *) barButtonItemWithTitle:(NSString *)title backgroundImage:(NSString *)image target:(id)target action:(SEL)action
{
    //create button & return it
    return barButtonItem;
}

使用

<强> ViewController.m

    UIBarButtonItem* backButtonItem = [Utility barButtonItemWithTitle:@" Back" backgroundImage:@"back_button" target:self action:@selector(backButtonAction)];
    self.navigationItem.leftBarButtonItem = backButtonItem;