iOS 탐색 모음 모범 사례

3751 단어
많은 항목을 보았는데 서로 다른 네비게이션 표시줄을 설정하고 숨기고 표시하는 설정이 있다. 각 페이지에 그림이 나타날 것이다. 그림을 떠나서 네비게이션 표시줄의 그림 문자 색깔을 처리한다.근무 연한, 초과 근무 시간은 당신의 기술을 진보시키지 않을 것입니다. 단지 당신에게 스팸 코드의 쓰기에 습관이 될 뿐입니다. 스팸 코드를 기억하고 스팸 코드를 베끼거나 베끼거나 스팸 코드를 바꾸고 싶지 않습니다. 얼마나 슬픈 신이십니까.
제3자FDFullscreenPopGesture를 사용하여 사고방식을 설정하고 전역 내비게이션 표시줄 배경이나 그림, title baritem 색깔, 서로 다른 배경 title 한 줄에 전역 내비게이션 표시줄을 숨기고 자신의 페이지에view 아날로그 내비게이션을 쓴다.실제 프로젝트 운용, 다양한 전환을 표시하고 숨기는 데 이상이 없습니다.
예를 들어 CKKShareVC가 있으면 특별한 내비게이션 표시줄이 필요합니다.작업 프로세스 1, 현재 페이지 처리

- (void)viewDidLoad {
    [super viewDidLoad];
    
    self.fd_prefersNavigationBarHidden = YES;
}

2. 기본 내비게이션 처리
#pragma  mark - life cycle

+ (void)initialize {

    [[UINavigationBar appearance] setTranslucent:NO];
    NSDictionary *titleAttributeDict = @{NSForegroundColorAttributeName:[UIColor whiteColor],
                                         NSFontAttributeName:[UIFont systemFontOfSize:18.0]};
    [[UINavigationBar appearance] setTitleTextAttributes:titleAttributeDict];
    
    [[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"Main001"]
                                      forBarPosition:UIBarPositionAny
                                          barMetrics:UIBarMetricsDefault];
    [[UINavigationBar appearance] setShadowImage:[[UIImage alloc] init]];
    [[UINavigationBar appearance] setTintColor:[UIColor whiteColor]];
    
    // UIBarButtonItem
    UIBarButtonItem *item=[UIBarButtonItem appearance];
    item.tintColor = [UIColor whiteColor];
    
    NSDictionary *itemAttributeDict= @{NSFontAttributeName:[UIFont systemFontOfSize:15],
                                       NSForegroundColorAttributeName : [UIColor whiteColor]};
    [item setTitleTextAttributes:itemAttributeDict forState:UIControlStateNormal];
    
    // backItem           ,    ,          ,    
    //        UIImage *originImage = [UIImage imageNamed:@"navback"];
    //        UIEdgeInsets insets = UIEdgeInsetsMake(0.0f, -10.0f, 0.0f, -10.0f);
    //        UIColor *fillColor = [UIColor clearColor];
    //        UIImage *backButtonImage = [originImage imageByInsetEdge:insets withColor:fillColor];
    //        [item setBackButtonBackgroundImage:[originImage resizableImageWithCapInsets:UIEdgeInsetsMake(0, 18, 0, 0) ]
    //                                  forState:UIControlStateNormal
    //                                barMetrics:UIBarMetricsDefault];
    
    
    //    UIOffset minOffset =
    //    UIOffsetMake(NSIntegerMin, NSIntegerMin);
    //    [item setBackButtonTitlePositionAdjustment:minOffset
    //                                 forBarMetrics:UIBarMetricsDefault];
    
}
#pragma mark - view life cycle
- (void)viewDidLoad {
    [super viewDidLoad];
    
    self.view.backgroundColor = [UIColor  whiteColor];
    self.delegate = self;
}
//     
#pragma mark - Private Methods
#pragma mark -
#pragma mark Whether need Navigation Bar Hidden
- (BOOL) needHiddenBarInViewController:(UIViewController *)viewController {
    
    BOOL needHideNaivgaionBar = NO;
    ///     CKKShareVC      
    if ([viewController isKindOfClass: NSClassFromString(@"CKKShareVC")]) {
        
        needHideNaivgaionBar = YES;
    }
    
    return needHideNaivgaionBar;
}
#pragma mark - UINaivgationController Delegate
#pragma mark -
#pragma mark Will Show ViewController
- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated {
    
    //   NavigationController         ,            
    [self setNavigationBarHidden: [self needHiddenBarInViewController: viewController]
                        animated: animated];
}

좋은 웹페이지 즐겨찾기