金沙贵宾会官网|金沙贵宾会登录-官网

【A】金沙贵宾会官网超高的返奖率为娱乐者提供资金保障,所以金沙贵宾会登录官网更加的方便了你的娱乐,申请88元彩金,因为在当中不仅仅只有游戏。

团队开发之,iOS开发基础

日期:2019-11-30编辑作者:网络安全

ios 团队开发之-UITabbarController整合多个storyboard的controllers

在一个tabbarController中,该如何整合 来自多个storyboard的controller页面呢?

 

为什么会有多个storyboard呢?
多人开发的 工程中,根据不同的功能业务模块,可以使用 多个 storyboard, 每个storyboard完成自己模块的controller或其他视图的编写:
最后写完之后,只需要先找到对应的storyboard,再 在该storyboard中找到你所需的controllers即可:

那么如何整合3个/或多个storyboard的controllers页面到一个tabbar上面呢?

直接上代码,慢慢解释 :

1.首先创建一个类,继承自

UITabBarController

 

 

//
//  TabBarController.h
//  Aiyu
//
//  Created by http://blog.csdn.net/yangbingbinga on 14/10/24.
//  Copyright (c) 2014年 http://blog.csdn.net/yangbingbinga. All rights reserved.
//

#import 

@interface TabBarController : UITabBarController

@end

2.实现文件:

 

 

//
//  TabBarController.m
//  Aiyu
//
//  Created by http://blog.csdn.net/yangbingbinga on 14/10/24.
//  Copyright (c) 2014年 http://blog.csdn.net/yangbingbinga. All rights reserved.
//

#import TabBarController.h

@interface TabBarController ()

@end

@implementation TabBarController

- (void)viewDidLoad {
    [super viewDidLoad];
    NSMutableArray *vcs=[NSMutableArray arrayWithCapacity:3];//创建一个数组来保存controller对象

    UIStoryboard *main=[UIStoryboard storyboardWithName:@Main bundle:[NSBundle mainBundle]];/首先找到对应的storyboard
    UIStoryboard *main1=[UIStoryboard storyboardWithName:@Main1 bundle:[NSBundle mainBundle]];
    UIStoryboard *main2=[UIStoryboard storyboardWithName:@Main2 bundle:[NSBundle mainBundle]];


    UIViewController *vc1=[main instantiateViewControllerWithIdentifier:@xiaoenai];//根据storyboard和controller的storeId找到控制器
    UIViewController *vc2=[main1 instantiateViewControllerWithIdentifier:@xinqing];
    UIViewController *vc3=[main2 instantiateViewControllerWithIdentifier:@miyu];

    [vcs addObject:vc1];
    [vcs addObject:vc2];
    [vcs addObject:vc3];

    [self setViewControllers:vcs animated:NO];//用当前的viewController数组替换原本的tabbarControlle的 viewControllers数组
}

@end

当然,使用 这些语句之前,需要给ViewController设置标识符:

 

见下图:

图片 1

 

 

 

团队开发之-UITabbarController整合多个storyboard的controllers 在一个tabbarController中,该如何整合 来自多个storyboard的controller页面呢? 为什么会有多...

storyBoard出了这么久,因为项目中没有涉及到,所以也就没有涉猎,这几天项目不忙,闲来无事就想看一看,没想到给我玩嗨了,于是乎从昨天开始一直嗨到现在,觉得storyBoard是一个很有趣很强大的东西,果断记录一下。

现在TabBarController基本是各种应用的标配了NavigationController更是处处都要用到,如果用storyboard开发直接在上面拖界面连线即可,如果要用纯代码开发该如何写呢?我们可以分为如下几个步骤

开始之前先了解一下storyBoard是什么
  • storyBoard是iOS5中引入的,在近几年的 Xcode 更新中可以看出,苹果对 Storyboard 的开发力度也不断增强,添加了更多功能和特性,同时也让界面的开发和适配更方便。
  • storyBoard的本质是XML文件,它描述了窗体、组件以及Auto Layout 约束等信息。
  • storyBoard的优势就在与它把界面和代码分离,是界面逻辑更直观,代码更清晰、开发效率更高。

1.在appDelegate中初始化UIWindow
2.创建TabBarController实例
3.将所需界面的rootViewController设置为NavigationController
4.将所需页面添加到tabbarController上
5.自定义各自的UITabBarItem
6.设置window的rootViewController为tabbarController,并让其显示

好,要创建项目了

然后大家可以看到,Main.storyboard 和 LaunchScreen.storyboard,一个是界面初始化入口,一个是启动页。

PS:这里插一句,昨天刚开始搞得时候,先是拉了一个navigationController进去,发现每次都是启动之后闪了一下,导航条就消失了,让我很费解,后来发现,我特别二的把navigationController放在了LaunchScreen.storyboard里面。所以我觉得,这里面是可以搞一些事情的,还没尝试,慢慢来吧。

!!!!!注:如果要通过代码实现请把main.storyboard删掉且在info.plist中将Main storyboard file base name的Value值清空

进入正题

PS:昨天搞得另一个特别二的事,就是加元素的时候把这个向右的箭头删掉了,然后启动的时候各种黑屏。

  • 尴尬的向右箭头:右面框里的单选框英文翻译过来就是最初的试图控制器,所以,当你确定在当前的这个故事版里面的它就是初始进入的页面的话,那么,请勾选。
  • 再来说第二张图里的Class: class的作用就是关联类文件的。现实的开发中,页面里基本不太可能不需要写代码,比如我们新建了一个FirstViewController.hFirstViewController.m 就可以通过这个选项把拖拽的ViewController和他们关联起来。

刚拖进来新鲜的ViewController

刚创建新鲜的

关联成功

import UIKit

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?


    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {

        //初始化窗口
        self.window = UIWindow(frame: CGRectMake(0,0,SCREEN_WIDTH,SCREEN_HEIGHT))

        //创建TabBarController实例
        let tabbarController = UITabBarController()

        //将所需界面的rootViewController设置为NavigationController
        let rankController = UINavigationController(rootViewController: rankViewController())
        let searchController = UINavigationController(rootViewController: searchViewController())
        let pushController = UINavigationController(rootViewController: pushViewController())
        let circleController = UINavigationController(rootViewController: circleViewController())
        let moreController = UINavigationController(rootViewController: moreViewController())

        //将这五个页面添加到tabbarController上
        tabbarController.viewControllers = [rankController,searchController,pushController,circleController,moreController]

        //设置五个UITabBarItem
        let tabbarItem1 = UITabBarItem(title: "排行榜", image: UIImage(named: "bio"), selectedImage: UIImage(named: "bio_red"))
        let tabbarItem2 = UITabBarItem(title: "发现", image: UIImage(named: "timer 2"), selectedImage: UIImage(named: "timer 2"))
        let tabbarItem3 = UITabBarItem(title: "", image: UIImage(named: "pencil"), selectedImage: UIImage(named: "user two-2_red"))
        let tabbarItem4 = UITabBarItem(title: "圈子", image: UIImage(named: "users two-2"), selectedImage: UIImage(named: "users two-2_red"))
        let tabbarItem5 = UITabBarItem(title: "更多", image: UIImage(named: "more"), selectedImage: UIImage(named: "more_red"))

        //分别将五个UITabBarItem添加到各自的视图上
        rankController.tabBarItem = tabbarItem1
        searchController.tabBarItem = tabbarItem2
        pushController.tabBarItem = tabbarItem3
        circleController.tabBarItem = tabbarItem4
        moreController.tabBarItem = tabbarItem5

        //设置tabbar图标及字体被选中时的颜色,此处用五个页面的其中一个都可以
        rankController.tabBarController?.tabBar.tintColor = MAIN_RED

        //设置window的rootViewController为tabbarController,并让其显示
        self.window?.rootViewController = tabbarController
        self.window?.makeKeyAndVisible()
        return true
    }
我们先简单的那微信当做一个例子吧

1、 首先我们需要一个tableware,于是我们删掉了之前的viewController,拖入一个tabbarController,然后删掉多余的东西。上图

2、微信有四个item 微信、通讯录、发现、我。都带导航条。来搞一下,拖进来4个navigation,为了练习,删掉了带过来的rootViewController

3、按住control鼠标从navigation拖到viewController上 选root那个

4、 我把.h和.m直接创建了,然后绑定

5、 按住control鼠标从tabbarController拖到navigation上 选view controllers那个

6、 设置一下item ,修改右边框里的数据

7、这里暂时就先不搞那个tableView了,直接搞页面跳转部分吧。先简单加几个button和viewController作为跳转使用。

8、按住control 从button拖~ 拖到viewController

9、我们可以看到有几个选项,刚开始不知道是干嘛的,于是上网查了一下。
苹果文档的地址,有能力可以去看一下,我是看不懂。
https://developer.apple.com/library/ios/recipes/xcode_help-IB_storyboard/chapters/StoryboardSegue.html

在网上找到了翻译了的苹果文档内容:

  • Show: 在master或detail区域展现内容(典型的如iPad的设置界面,左侧是master,右侧是detail),究竟是在哪个区要取决于屏幕上的内容,如果不分master/detail,就单纯的把新的内容push到当前view controller stack的顶部
  • Show Detail: 大致同Show,在detail区域展现内容,如果不分master/detail,新的内容取代当前view controller stack的顶部
  • Present Modally:模态展示内容,从下面弹上来的那种。
  • Present as Popover:在当前的view上出现一个小窗口来展示内容,无处不在的“选中文字后出现 复制/翻译 按钮就是这个
  • Custom:自定义的
  • Push: 这个大家都知道吧。
  • Modal: 和上面的Present Modally是一样的,从下面弹出来那种。

9、我们先选push,当然还有另外一种push的方法,稍后再说。

大家看,push过来导航条是有变化的,刚来进来的时候是没有导航条的

10、页面下面这个注掉的方法,每次页面跳转都会走这个方法,用来传递参数什么的。

push的时候

11、还有另外一种push 的方式,通过代码push,然后按住control从上一个页面连接到下一个页面,

12、要给这个segue 一个id 在push2click中添加一个方法,push2 就是刚才添加的segue id

13、还有另外一种代码push的方式,这种就要用到 storyBoard id了,同时也要创建类文件并文件,前面说过了,直接上图。

14、 然后看代码,这里就看着比较像我们平时写的代码了,只是获取类的方式不一样

15、从下面弹出来的,基本和push方法是相同的,所以就不多说了。

16、 最后我们来说一下传值吧,先简单试一下,给push到的页面加一个title,

这样我们就创建出了如下界面

总结

OK,这两天接触的差不多就这么多,以后还会深入的研究,这篇就先到这里了,刚开始学习,可能并不够细致,命名也不规范,欢迎指正,欢迎批评。
我把这个demo传到了GitHub,有兴趣可以去看一下。地址:
https://github.com/YvanLiu/StoryBoardDemo.git

图片 2

基本界面.png

随后在各个界面中实现自己的代码即可

本文由金沙贵宾会官网发布于网络安全,转载请注明出处:团队开发之,iOS开发基础

关键词:

教你四招快速关掉电脑程序的方法,怎样教你牢

再高的高高手也免不了直面死机,在系统当下就要死锁前尽快关掉多少个应用程序,就有比异常的大恐怕挽回朝不保...

详细>>

ParseChat聊天室应用项目源码

ParseChat谈天室应用途目源码,parsechat聊天室 ParseChat是二个截然原生的黑莓应用程序,用于创设实时的、基于文本的...

详细>>

ajax后退解决方案

相关: cors完成跨域难点: cors前端代码 pre !DOCTYPE html html head meta charset="utf-8" title跨域/title /head style .container{ width: ...

详细>>

jQuery过滤选择器用法分析,jquery选择器原创

jquery选择器(原创)四,jquery选择器原创 前面学习了基本选择器,现在学习过滤选择器中的简单过滤选择器: 简单过...

详细>>