2

我正在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];
4

1 回答 1

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

实用程序.m

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

使用

视图控制器.m

    UIBarButtonItem* backButtonItem = [Utility barButtonItemWithTitle:@" Back" backgroundImage:@"back_button" target:self action:@selector(backButtonAction)];
    self.navigationItem.leftBarButtonItem = backButtonItem;
于 2013-01-18T07:43:03.633 回答