2014-12-16 1 views
1

은 내비게이션 막대 스타일을 ViewDidLoad에 구현하거나 모든 VC에 붙여 넣는 대신 전역 적으로 어떻게 든 구현하는 방법이 있습니까? 감사.내비게이션 스타일 앱 전체에서

// Navagation styling 
    viewController.title = @"NAV TITLE"; 
    [viewController.navigationController.navigationBar setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIFont fontWithName:@"Gibson-Light" size:20.0], NSFontAttributeName, nil]]; 

    UIBarButtonItem *rightBarButton = [[UIBarButtonItem alloc] initWithTitle:nil 
                     style:UIBarButtonItemStylePlain 
                     target:viewController 
                     action:nil]; 

    rightBarButton.image = [UIImage imageNamed:@"settings_cog"]; 
    rightBarButton.tintColor = [UIColor grayColor]; 

    viewController.navigationItem.rightBarButtonItem = rightBarButton; 
+0

UIViewController 하위 클래스를 만들고 위 코드를 붙여넣고 다른 모든보기 컨트롤러로 확장합니다. – Kampai

+0

카테고리를 추가하고 추가하는 것이 더 좋습니다 - (void) addRightButtonItem; 그것을 – Abhishek

답변

2

당신은 BaseViewController을 만들고 그 안에 위의 코드를 넣고 BaseViewController에서 모든 컨트롤러를 확장 할 수 있습니다. 이 같은

수행

BaseViewController.m에서

BaseViewController.h

@interface BaseViewController : UIViewController 
{ 
    NSString *_title; 
} 

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil title:(NSString *)navTitle;  

@end 

에서 오브젝티브 C 클래스 BaseViewController.h와하는 .m 만들기

@implementation BaseViewController - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil title:(NSString *)navTitle { _title = navTitle; } - (void)viewDidLoad { self.title = _title; [self.navigationController.navigationBar setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIFont fontWithName:@"Gibson-Light" size:20.0], NSFontAttributeName, nil]]; UIBarButtonItem *rightBarButton = [[UIBarButtonItem alloc] initWithTitle:nil style:UIBarButtonItemStylePlain target:viewController action:nil]; rightBarButton.image = [UIImage imageNamed:@"settings_cog"]; rightBarButton.tintColor = [UIColor grayColor]; self.navigationItem.rightBarButtonItem = rightBarButton; } @end 

이제 뷰 컨트롤러를 만들고 UIViewController 대신 BaseViewController에서 확장 할 수 있습니다.

궁금한 점이 있으면 알려주세요.

+0

에게 어떻게 설명해 주시겠습니까? – Luke

+0

@ 루크가 게시물을 업데이트했습니다. 봐. –

+0

http://stackoverflow.com/questions/6249416/adding-more-than-two-button-on-the-navigationbar와 함께이 코드를 통해 조건의 성공 또는 실패를 기준으로 오른쪽 탐색 항목에 요소를 추가 할 수있었습니다. . –

관련 문제