小编Dyl*_*lan的帖子

在Objective C中跨类共享方法的最佳方法是什么?

我有几个视图控制器和表视图控制器,我从我的根视图控制器推送.在所有这些中,我想在导航控制器中使用自定义后退按钮.我没有复制方法来将我的后退按钮设置到每个类文件中,而是创建了一个带有类方法的辅助类来完成设置.下面的代码有效,但我想知道我是否会以错误的方式解决这个问题.有没有更好的方法来实现这一目标?另外,我仍然在我的所有类中复制 - (void)myCustomBack方法,并且想知道是否有办法避免这种情况.

@interface NavBarBackButtonSetterUpper : NSObject
+ (UIButton *)navbarSetup:(UIViewController *)callingViewController;
@end

@implementation NavBarBackButtonSetterUpper

+ (UIButton *)navbarSetup:(UIViewController *)callingViewController
{
    callingViewController.navigationItem.hidesBackButton = YES;

    UIImage *backButtonImage = [[UIImage imageNamed:@"back_button_textured_30"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 13, 0, 5)];

    UIButton *backButton = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 50, 30)];

    [backButton setBackgroundImage:backButtonImage forState:UIControlStateNormal];

    [backButton setTitle:@"Back" forState:UIControlStateNormal];
    backButton.titleLabel.font = [UIFont fontWithName:@"AmericanTypewriter-Bold" size:12];
    backButton.titleLabel.shadowOffset = CGSizeMake(0,-1);

    UIView *customBackView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 50, 30)];
    [customBackView addSubview:backButton];

    callingViewController.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:customBackView];

    return backButton;
}
@end



@interface MyCustomTableViewController : UITableViewController
@end

@implementation …
Run Code Online (Sandbox Code Playgroud)

objective-c ios

14
推荐指数
1
解决办法
2360
查看次数

标签 统计

ios ×1

objective-c ×1