iOS开发 OC 导航栏 UINavigationController 工具条 UIToolBar

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS开发 OC 导航栏 UINavigationController 工具条 UIToolBar相关的知识,希望对你有一定的参考价值。

技术分享

导航栏最常见的例子就是返回按钮的所在

在AppDelegate.m中,代码布局最开始定义窗口的时候, _window.rootViewController就应该为一个UINavigationController

这里的UINavigationController,戳进定义发现它是UIViewcontroller的子类

而之前代码布局中这里用的rootController是UIViewcontroller

所以它之中也是像之前代码布局中的UIViewcontroller一样是包含多个controller的,所以作为rootController

//按我自己理解,UINavigationController就是一个带导航栏的特殊UIViewcontroller,我们用导航栏,就选择用它

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Override point for customization after application launch.
UINavigationController *rootNav = [[UINavigationController alloc] initWithRootViewController:[[ViewController alloc]init]]; _window = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds]; _window.rootViewController = rootNav; [_window makeKeyAndVisible]; return YES; }

导航栏暂时完成,下面去定义工具条

 新建一个View,父类选择UIToolBar,这就是我们自己的工具条View

技术分享

 

 

ToolBar作为一个独立的View,和之前的代码布局中我们自己的Mainview没什么区别,想添加控件的方法都是一样的

只不过这个ToolBar只是一个工具栏,所以定位只在工具栏的一块小区域中定位,这是差不多唯一的不同

 

现在,我们要加载的有我们本身想要的一个View,通过改变rootController类型添加了导航栏,现在我们又要添加导航条,要加载的就不止一个View

在上次单纯的代码布局中,在Viewcontroller.m中重写的loadView是这样的

-(void)loadView
 {
     self.view = [[MainView alloc]initWithFrame:[UIScreen mainScreen].bounds];
 }

 

直接把定义的根view赋值了我们自己的Mainview这一个,现在我们需要多个,就可以

-(void)loadView
{
    [self.navigationItem setTitle:@"备忘录"];
    [super loadView];
    [self.view addSubview:[[NoteListView alloc]
                           initWithFrame:[UIScreen mainScreen].bounds
                           style:UITableViewStylePlain]];
    [self.view addSubview:[[NoteListToolbar alloc]
                           initWithFrame:CGRectMake(0, [UIScreen mainScreen].bounds.size.height - 44, [UIScreen mainScreen].bounds.size.width, 44)]];
}

 

先调用父类的loadView , [super loadView],来保证我们有一个基本的View存在,虽然他是空的,表示为黑屏

接着可以向这个View中使用addSubview添加你想要的View

另外这里的self是最开始的rootController的类型UINavigationController,使用它的属性来定义了标题

 

以上是关于iOS开发 OC 导航栏 UINavigationController 工具条 UIToolBar的主要内容,如果未能解决你的问题,请参考以下文章

IOS Swift CNContactViewController 导航栏不显示 UINavigation 控制器

swift iOS中的UINavigation状态栏颜色变化[重复]

在 iOS 7 中为 uinavigation 栏设置色调颜色而不中断栏按钮项目 [重复]

如何在我的标签栏 iOS 应用程序上呈现模式 UINavigation 视图?

iOS设计之 多视图导航栏UINavigationController切换视图的简单设计

如何将按钮添加到 UINavigation 项?