iOS 글로벌 정의 NavigationController 스타일

1. 사용자 정의 NavigationController.m의 initialize 방법에서 아래 코드를 작성하고
+ (void)initialize{
    //         UIBarButtonItem
    UIBarButtonItem *item = [UIBarButtonItem appearanceWhenContainedIn:self, nil];

    //             
    NSMutableDictionary *titleAttr = [NSMutableDictionary dictionary];
    titleAttr[NSForegroundColorAttributeName] = [UIColor orangeColor];
    [item setTitleTextAttributes:titleAttr forState:UIControlStateNormal];

    // 1.       
    UINavigationBar *bar = [UINavigationBar appearanceWhenContainedIn:self, nil];
    [bar setBackgroundImage:[UIImage imageWithOriginalName:@"bg_navigation bar"] forBarMetrics:UIBarMetricsDefault];

    //        
    [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;

    // 2.         
    NSMutableDictionary *barAttrs = [NSMutableDictionary dictionary];
    [barAttrs setObject:[UIColor orangeColor] forKey:NSForegroundColorAttributeName];
    [barAttrs setObject:[NSValue valueWithUIOffset:UIOffsetMake(0, 0)] forKey:UITextAttributeTextShadowOffset];
    [bar setTitleTextAttributes:barAttrs];

// 4.back  
// [item setBackButtonBackgroundImage:[UIImage imageWithOriginalName:@"navigation_back"] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
    UIImage *image = [UIImage imageNamed:@"navigation_back"];
    [item setBackButtonBackgroundImage:[image resizableImageWithCapInsets:UIEdgeInsetsMake(0, image.size.width, 0, 0)] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
    [item setBackButtonTitlePositionAdjustment:UIOffsetMake(-200.f, 0) forBarMetrics:UIBarMetricsDefault];
}

이렇게 하면 전역적으로 스타일을 정의할 수 있습니다. 사용자 정의navigationItem에서.backBarButtonItem 시 주의가 필요합니다. 다음 편에서는 backBarButtonItem의 사용법을 소개합니다.

좋은 웹페이지 즐겨찾기