首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

iOS14开发-UIViewController

当 UIViewController 访问 view 如果发现为 nil,就会调用 loadView 方法。 loadView 方法执行完自动执行 viewDidLoad。...顺向传值只需要在目标控制器中声明需要接收的参数,然后源控制器中进行传值即可。 storyboard 方式。 代码方式。...逆向传值 逆向传值即按照 UIViewController 跳转的顺序反向进行传值,比如控制器A跳转到控制器B,控制器B返回控制器A进行传值,这种方式就是逆向传值。...逆向传值不能像顺向传值那样简单进行,需要借助于下面三种方式。 代理 代理模式需要弄清楚被代理对象和代理对象,然后按照下面的规范进行。...颜色问题 UITabBar的颜色 可以通过 UITabBar 的barTintColor设置。 渲染颜色 图片一般由设计师统一设计,需要设置标题文字颜色适应图片。

2.3K20
您找到你想要的搜索结果了吗?
是的
没有找到

iOS开发中标签控制器的使用——UITabBarController

,采用push与pop切换控制器,标签的管理是横向的,通过标签的切换来改变控制器,一般我们习惯将tabBar作为应用程序的根视图控制器,在其中添加导航,导航中在对ViewController进行管理。...@property(nonatomic) NSUInteger selectedIndex; //当viewController大于4个,获取"更多"标签的导航控制器 @property(nonatomic... *)tabBar didSelectItem:(UITabBarItem *)item; //将要开始编辑标签 - (void)tabBar:(UITabBar *)tabBar willBeginCustomizingItems...:(NSArray *)items;            //将要进入编辑状态 - (void)tabBar:(UITabBar *)tabBar willEndCustomizingItems...:(NSArray *)items changed:(BOOL)changed;  //已经进入编辑状态 - (void)tabBar:(UITabBar *)tabBar

1.5K20

Cocoa编程中视图控制器与视图类详解

添加或修改导航栏按钮,使用UINavigationItem抽象类。...UITabBarController类       选项卡类允许用户多个视图控制器之间移动并在屏幕的底部可定制该栏。...不同的视图同时提供一次单击访问,向用户选择的屏幕和编辑底栏的屏幕同时提供More按钮。      ...设计模式     传统的mvc设计模式 image.png 添加描述    iOS mvc设计模式 image.png 添加描述 主要区别在于view和model之间的数据交换都要通过控制器来协调...控制器加载视图过程 当调用视图控制器的view属性,视图控制器先调用loadView方法加载视图,因此,可以loadView方法中创建所有的视图,这是比较好的编程惯例。

5K50

iOS14开发-触摸与手势识别

(5)phase:触摸事件的周期,即触摸开始、触摸点移动、触摸结束和中途取消。 方法 // 返回一个CGPoint类型的值,表示触摸view上的位置。 // 返回的位置是针对view的坐标系。...通过这两个方法可以做很多事情,其中一个经典的案例是自定义中间有凸起按钮UITabBar。...此时需要重写 UITabBar 的point方法,判断当前触摸位置是否中间凸起按钮的坐标范围内,如果在返回 true。这样可以让触摸事件传递到凸起按钮,并让其成为最佳响应者。...使用步骤 创建手势实例,指定回调方法,当手势开始,改变、或结束,回调方法被调用。 将手势添加到需要的 UIView 上。...继承自 UIControl 的 UIView 都可以通过 Target-Action 方式添加事件,如果同时给它们添加手势识别, 则 Target-Action 的行为失效,因为手势识别的优先级更高。

2.2K20

iOS学习—— UINavigationController的返回按钮与侧滑返回手势的研究

导航栏左上角的back按钮是附着UINavigationController的UINavigationBar里自带的一个返回按钮,导航栏自带的back按钮的图层结构如下图所示。...,我们一般是采用的UITabBar + UINavigationController架构,对于每一个UITabBar的item模块,我们都定义一个UINavigationController对该item...而在这个模块上,我们有某个或某些viewController需要禁用侧滑手势(一般需要禁用侧滑手势是因为返回或退出当前viewController需要double confirm,一些填表的页面比较常见...提供一个解决方案就是进入viewController - (void)viewDidAppear:(BOOL)animated; 中禁用侧滑手势,然后离开viewController - (void... 中添加按钮,然后添加按钮的点击功能即可。

6.3K60

【IOS开发基础系列】Navigation页面导航专题

VC,而是通过AddChildViewController的方式添加的场景,则父级导航条覆盖子级导航条上面,所以需要在载入时把父级导航条做隐藏处理: 1.2 navigationItem         ...[self.navigationItem setHidesBackButton: YES]; 2.5.5 设置导航栏标题的字体颜色和大小     方法一:(自定义视图的方法,一般人也采用这样的方式)...        就是导航向上添加一个titleView,可以使用一个label,再设置label的背景颜色透明,字体什么的设置就很简单了。...否则会导致页面切换选中状态不准确         TabBar与导航条混用时,TabBarItem的设置是NavigationController中,而不是内容Controller中,切记!!!...否则会导致页面切换选中状态不准确。

31020

Swift开发:自定义标签栏UITabBarController (Swift项目开始的第一步)

自定义UITabbarController进而自定义UITabbar,这通常会是一个iOS项目开始的重要环节。...总结了一些基本的用法之后,我尝试使用Swift自定义UITabBarController和UITabbar,开启这Siwft项目的关键一步,首先展示一下效果图: ?...第二步:准备资源文件 1.Assets.xcassets中存放标签栏按钮所需要的图片资源 ?...屏幕快照 2017-07-15 下午1.46.26.png 这里做下说明,之所以创建这个plist文件是因为之后创建视图控制器和标签按钮时会有很大的便利性,而且也十分方便真实开发过程中的需求更改。...项目前期我们自定义的方式来创建标签栏,这也是为了后期应对更加复杂的需求做伏笔,比如增加新的控制器我们只需要修改plist配置文件的属性创建相应的视图控制器就可以,这样就避免了修改大量代码。

3.8K70

【 iOS 应用开发 】 UIKit 控件 ( UIView 属性 | storyboard 设置 | 模拟器 | 拖线关联 | tag | 软键盘操作 | 颜色值 | 代码生成控件 | 动画设置 )

, 可以将箭头从 ViewController 之间来回拖动, 切换 storyboard 界面 初始的 ViewController 控制器; 5.箭头控制 - 删除 : 箭头的对象左侧显示...界面, 另一个现实 ViewController.h 代码界面, ② 将鼠标指针移动ViewController.h 界面中的按钮点击方法前的圆圈 中, 此时圆圈变成 , 此时**按住鼠标左键...两种方式 ① 哪个 TextField 触发的, 通过对应的 TextField 控件 关闭键盘; ② 通过 父控件 关闭 软键盘; ① 谁触发谁关闭 : 调用控件的 resignFirstResponder..., 然后点击按下状态, 大按钮显示另外一个背景图片; 3.上下左右按钮 : 点击四个按钮, 大按钮进行上下左右移动; 4.放大缩小按钮 : 点击放大, 大按钮放大, 点击缩小, 大按钮缩小; -...: Main.storyboard 中添加一个按钮, 修改按钮文字为 “代码生成UIView控件”, 进入辅助编辑器模式, 按下 control 键不放, 左键拖动按钮ViewController.m

4.6K30

Xcode:处理故事板的更好方式 享受Interface Builder的提示和技巧

这正是Interface Builder的创建方式。 但对开发人员而言,这可能导致多个问题。 源代码控制:故事板合并冲突很难解决,因此简单地单独的故事板中工作将使您的团队生活更轻松。...故事板ID,并且每次创建HomeViewController都需要使用此模式。...硬编码长字符串名称总是一个糟糕的编程习惯。 当您使用“if / else”或“switch”语句添加一些segues,PrepareForSegue方法将变得难看并且不可读。 有什么选择?...当您想要按下按钮导航到下一个viewController,只需为此按钮添加一个IBAction,并在代码中初始化此viewController:当您采用建议#3,它实际上是一行代码。...在这种情况下,从按钮拖动到“退出”出口是期望代码已经您的项目中。 通常,当您为按钮创建动作插座,它会将代码放在拥有该按钮的同一个类中。

1.4K30

【IOS开发基础系列】Storyboard专题

这样我们就能在切换Tab 时区分两个ViewController。 注意:你不能在编辑器的缩放模式场景拖放东西,必须首先恢复到普通模式下。         ...这种方式,你可以创建超过 5 个的ViewController 给TabBarController,它将自动Tabbar 上显示 More... 按钮。...以前,如果你要定制表视图单元格,你要么代码中cell对象添加自己的 subviews ,要么新建一个 nib 然后从nib 中加载你自己的 cell。...其次,你应当确保添加的内容能自动适应单元格尺寸的变化。例如,当你需要表格行能够被删除或移动 ,Cell 尺寸会发生改变。         ...3 设计原则 3.1 布局设计原则 3.1.1 一个控件的布局尽量只采用一种方式,要么是Storyboard(XIB)要么是代码         因为视图刷新直接从Storyboard中加载控件的大小

65130

将模型添加到场景中 - 您的环境中显示3D内容

右侧,我们有ViewController.swift,在那里我们可以找到该出口的声明。单击并拖动左侧的圆圈,它应该是第15行,然后释放到ARSCNView上。现在,关闭助理编辑。...添加按钮 我们想在视图中添加一个按钮,用作在场景中添加模型的触发器。从对象库中,将UIButton拖动到场景视图的顶部。“ 属性”检查器中,删除“ 按钮”标题并将图像设置为“ 按钮/添加”。...添加按钮功能 我们刚刚在屏幕上添加按钮,但它根本没有做任何事情。当我们触摸它,让按钮执行某些操作。现在,打开Assistant编辑器并控制将故事板中的按钮拖到ViewController类。...然后,ViewController添加扩展。...min.x) / 2, min.y + (max.y - min.y) / 2, min.z + (max.z - min.z) / 2) 显示模型 我们刚刚完成了这个功能,现在,我们准备点击按钮在场景中显示我们的模型

5.4K20

iOS,面试必看,最全梳理

发信号,Controller设置监听接受信号,当有数据更新就发信号给Controller,Model和View不能直接进行通信,这样违背MVC设计模式。...autorelease消息,该对象自动入池,待池销毁,将会池中所有对象发送一条release消息,释放对象。...第二种:点击某个按钮后,所有与之同类型的按钮都要修改值,那么可以通过创建按钮按钮存入到数组中,需要的时候遍历查找。 线程与进程的区别和联系? 一个程序至少要有进城,一个进程至少要有一个线程....Storyboard:需求变动,需要修改storyboard上对应的界面的约束,与XIB一样可能要重新添加约束,或者添加约束造成大量的冲突,尤其是多团队开发。...服务器端和客户端使用相同的数据结构很重要; 使用Autorelease Pool:某些循环创建临时变量处理数据,自动释放池保证能及时释放内存; 正确选择图片加载方式:详情阅读细读UIImage

1.1K30

iOS两年前的面试题总结,现在的你掌握了嘛?

发信号,Controller设置监听接受信号,当有数据更新就发信号给Controller,Model和View不能直接进行通信,这样违背MVC设计模式。...autorelease消息,该对象自动入池,待池销毁,将会池中所有对象发送一条release消息,释放对象。...第二种:点击某个按钮后,所有与之同类型的按钮都要修改值,那么可以通过创建按钮按钮存入到数组中,需要的时候遍历查找。 线程与进程的区别和联系? 一个程序至少要有进城,一个进程至少要有一个线程....Storyboard:需求变动,需要修改storyboard上对应的界面的约束,与XIB一样可能要重新添加约束,或者添加约束造成大量的冲突,尤其是多团队开发。...服务器端和客户端使用相同的数据结构很重要; 使用Autorelease Pool:某些循环创建临时变量处理数据,自动释放池保证能及时释放内存; 正确选择图片加载方式:详情阅读细读UIImage加载方式

1.1K20

iPad Safari多窗口视图分析和实现思路

在手机上,由于屏幕空间有限,点击窗口管理的按钮可以看到手机上采用了一种视图层叠的效果,有点模拟从一个实体文件夹中翻查文件的感觉。...另外我们可以看到缩略图的顶部有一个标题栏和一个关闭按钮双指缩放放大的过程中我们可以看到一个临界点,超过这个临界点的时候标题栏渐隐,露出原本页面截图顶部的搜索栏和标签栏。...这里还有一点小细节,因为捏合过程双指还可以移动,我们实测 Safari 选择最终放大的页面还会根据捏合手势结束之后哪个视图占据目前视口面积较多、距离视口中心最近来决定,和前述标题的变化无关。...Container View Controller 的 view 我们可以添加一个ScrollView,每当一个新的 ViewController 需要展示,我们参考Apple的示例代码添加childViewController...从 Safari 的表现来看它极有可能也是采用截图的方式,我们实测网页中动态播放的视频到了大纲视图并不会继续动态播放,此外 Safari 进程被杀后重启,大纲视图里仍有之前的截图,可以推测是通过静态截图的并落地的方式实现

3.9K30
领券