首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

SYNavigationViewController自定义导航控制器

SYNavigationViewController自定义导航控制器

使用继承UINavigationContoller的封装类SYNavigationController,便于设置自定义的导航栏样式,效果优于使用未封装UINavigationContoller时的效果。

    有push动画的层级效果(未封装UINavigationContoller的无)
    样式设置方法可以在viewDidLoad方法中实现(未封装UINavigationContoller的通常在viewWillAppear,或viewWillDisappear方法中实现)
    样式设置后不同的视图控制器互不影响(未封装UINavigationContoller的会相互影响)
    同时可以设置状态栏字体样式,黑色或白色

自定义导航样式
自定义转场动画

代码示例

    // 导入头文件
    #import "SYNavigationController.h"

    // 定义根视图
    ViewController *rootVC = [[ViewController alloc] init];
    SYNavigationController *rootNav = [[SYNavigationController alloc] initWithRootViewController:rootVC];
    rootNav.showBackBarButtonItem = YES;
    rootNav.transferNavigationBarAttributes = NO;
    rootVC.showCancelBarButtonItem = YES;
     
    // 修改导航栏样式
    [self navigationStyleWithBackgroundColor:[UIColor brownColor] buttonColor:[UIColor yellowColor] titleColor:[UIColor greenColor] titleFont:[UIFont systemFontOfSize:12.0]];
     
    // 修改状态栏样式
    - (UIStatusBarStyle)preferredStatusBarStyle
    {
        // 黑色字体UIStatusBarStyleDefault、白色字体UIStatusBarStyleLightContent
        return UIStatusBarStyleDefault;
    }

    注意事项:
    获取视图控制器数组
    // 错误方法
    NSLog(@"%@ 是 %@ 中的第 %@ 个视图控制器", self, @(self.navigationController.viewControllers.count), @([self.navigationController.viewControllers indexOfObject:self]));

    // 正确方法
    NSLog(@"%@ 是 %@ 中的第 %@ 个视图控制器", self, @(self.sy_navigationController.sy_viewControllers.count), @([self.sy_navigationController.sy_viewControllers indexOfObject:self]));
返回列表