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

IOS开发之视图视图控制器

视图(View), 视图控制器(ViewController)是IOS开发UI部分比较重要的东西。在学习视图这一块的东西的时候,感觉和Java Swing的Panel差不多。...我们空工程的文件结构如下,我们只需在AppDelegate.m添加我们的视图,还是那句话为了更好的理解我们的视图,所有视图的创建和配置我们都用代码编写。 ?         ...下面是iOS提供的一些管理子视图方法,常用方法如下:             (1) initWithFrame : 通过frame初始视图,参数为CGRectMake(x, y, width, height...在本文刚开始的时候我们加入的view的代码都是在AppDelegate.m的文件里加的,其实没没那么做的,如果我们一直在上面的文件实例我们的各种控件,我们的应用程序代码会非常难维护。...,在AppDelegate.m实例MainViewController并添加到window,代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 - (BOOL)application

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

iOS程序猿如何快速掌握 PHP,化身全栈攻城狮?

AppDelegate 入口文件 iOS应用通常是以 AppDelegate 文件作为编码的起始(准确说的是 main.m,在此不细究).在PHP,你可以使用一个 index.php 文件作为你的 php...MVC 设计模式 我们仍然常用的MVC模式来开始更进一步的讨论.M,即Model数据模型,对应于我们在地址栏输入的model;V,即视图View,更直接地说是显示数据,为了简化讨论,我们此处仅对移动端开发常用的...JSON格式数据的显示作一实现;C,即Controller控制器,也就是我们常说的视图控制器,下面会具体讨论如何在PHP定义视图控制器....以上的代码,充分展示了php作为一门面向对象(OOP)语言最常用的几个功能,定义属性,定义实例方法,在示例方法内访问属性与实例方法等.PHP作为一门弱类型的OOP语言,也有一些非常强大的特性,推荐阅读...网上关于MVCM的讨论,此处我选取的是最基本的一种: M专指用于存储某种数据的类的实例.它可以用于数据的格式存储和传递,但不应包含发起网络请求和读写数据库等操作; 在本文讨论的Model,我们进一步简化了

1.7K71

App的生命周期

注意: 不要在这里做View相关操作,View在loadView方法才初始。...awakeFromNib 当awakeFromNib方法被调用时,所有视图的outlet和action已经连接,但还没有被确定,这个方法可以算作适合视图控制器实例配合一起使用的,因为有些需要根据用户喜好来进行设置的内容...loadView 当执行到loadView方法时,如果视图控制器是通过nib创建,那么视图控制器已经nib文件中被解档并创建好了,接下来任务就是对view进行初始。...因此loadView方法视图控制器的生命周期内可能被调用多次。...此时,视图层次已经放到内存,通常,我们对于各种初始数据的载入,初始设定、修改约束、移除视图等很多操作都可以这个方法实现。

1.2K10

SwiftUI-开发iOS项目

Info.plist — 属性列表文件,包含项目的很多配置,App名字、版本等 Preview Content — 这是一个文件夹,里面包含一个 Preview Assets.xcassets 启动流程...AppDelegate通过application(_:configurationForConnecting:options)返回一个UISceneConfiguration实例 完成启动后,控制权被交接给...SceneDelegate,它的 scene(_:willConnectTo:options:)将会被调用,设置window的根视图控制器 在初始视图控制器时会初始ContentView的View...会经常在 AppDelegate写上类似的代码,不同的就是rootViewController为UIHostingController类型的,UIHostingController是UIViewController...Text("Hello SwiftUI"),表示创建了文本Hello SwiftUI的标签 最后的结构体 ContentView_Previews,与ContentView类似,它专门用于在Xcode显示视图预览

4.7K10

iOS 超简单抽屉效果(MMDrawerController)的实现

ios开发,展示类应用通常要用到抽屉效果,由于项目需要,本人找到一个demo,缩减掉一些不常用的功能,整理出一个较短的实例。...首先需要给工程添加第三方类库  MMDrawerController: 这里讲的实例只加入了左滑抽屉。右滑和左滑只是初始化时多添加一个右视图控制器,其他方法基本相同。...下面是用手势实现抽屉的拉出和收回 1.初始视图控制器时,在AppDelegate中导入头文件 #import "MMDrawerController.h" 2.初始方法先初始视图和中心视图...,也就是图中的 BoutiqueCollectionViewController LeftDrawerTableViewController 3.初始完两个子视图控制器后,初始抽屉根视图控制器...MMDrawerController,初始抽屉控制器时需要将左视图控制器和中心视图控制器添加到抽屉视图控制器上。

1.4K20

iOS开发·UIWindow与视图层级调整技巧(makeKeyWindow,resignKeyWindow,makeKeyAndVisible,keyWindow,windowLevel,UIWind

为App初始一个默认UIWindow对象 在AppDelegate.m需要初始一个window属性,作为后面往App添加视图的容器 1....初始操作写在如下UIApplicationDelegate代理方法 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions...也就没有自带的setter方法。要设置其根视图只能通过如下方法,而不能通过属性的setter方法和点语法设置根视图。...#pragma mark - 获取根视图的(导航、标签)视图控制器 + (UINavigationController *)getRootVCformViewController { UIViewController...如果不想影响原来的UIWindow,可以考虑新建一个UIWindow并覆盖原来的UIWindow,并往新建的UIWindow上添加各种手势相关的视图控制器

7.7K10

一步一步,开始上手Mac 开发(一)

现在Application Delegate 已经拥有了MasterViewController 属性,但是这并不能显示(被view controller管理的)视图到应用程序的屏幕上,我们还需要通过实例这个属性来创建一个新的...当应用程序(Application)启动后,操作系统会调AppDelegate的这个方法“applicationDidFinishLaunching”,在这里我们可以编写一些初始代码,保证应用在启动后会执行...使用initWithNibName:方法nib(就是我们创建控制器时的Xib)文件创建了一个新的view Controller。 2....将控制的view 添加到主窗口的容器视图(contentView)。 3. 设置控制器view的大小与主窗口相等。...AppDelegate.m文件 运行程序,确保上面我们做的设置没有错误。为了能够显示需要的Bug 列表,我们要让table view 模型获取数据。

4K40

IOS 开发文档

一:设计模式 1:本项目采用mvvm设计模式,每个模块下分为四个文件夹,分别为:ControllerViewViewModelModel Controller:控制器文件夹 在此文件夹只存放模块相关控制器...,控制器只做UI初始 刷新UI 响应用户事件 跳转逻辑判断等和业务无关操作,所有业务处理放到ViewModel处理 View:自定义视图文件夹 在此文件夹存放该模块相关的视图,比如自定义的cell...,不会直接在外部显示以至于打乱目录结构 2:AppDlegate文件夹 这个目录下放的是AppDelegate.h(.m)文件,是整个应用的入口文件,这里需要添加一些入口相关类以保持一个简洁的AppDelegate...) 1.2: 属性命名: 采用小驼峰命名, 属性和属性之间换行已做区分, 实例变量命名要用_xxx方式 {// 数据源NSArray*_dataArray;// 存放选中cell的字典 NSDictionary...(各种点击事件,刷新事件,界面跳转事件) 2.5 子视图初始 五: 补充 5.1 简写补充 在定义属性和方法时, 可以使用众所周知的简写代替 5.2 事件补充 点击事件使用xxxTapAction长按事件使用

1.4K40

iOS集中和解耦网络:具有单例类的AFNetworking教程

AFNetworking的问题 AFNetworking很棒,但其的模块也会导致其以分散的方式使用。常见的低效实现可能包括: 多个网络请求在一个视图控制器。...在多个视图控制器几乎相同的请求导致分布式公共变量可能会失去同步。 在类对与该类无关的数据进行网络请求。...您可以通过工厂方法单例类获得全局实例。– Apple 因此,单例是一个在应用程序的生命周期中,只存在一个实例的类。...这就是为什么我们应该为网络使用一个单例: 它是静态初始的,一旦创建,它将具有相同的方法和属性可用于任何尝试访问它的类。不可能出现奇怪的同步问题或错误的类实例请求数据。...单例对象是一个类,在应用程序只能有一个实例存在于应用程序的生命周期中。此外,因为我们知道只有一个实例,所以任何其他需要访问它的方法或属性的类都可以轻松访问它。

1.7K10

基础篇-UIApplication、UIWindow以及程序的启动流程看我就够了

此外,UIApplication实例还维护一个在本应用打开的window列表(UIWindow实例),这样它就可以接触应用的任何一个UIView对象。...class])); } } 这个默认的iOS程序就是main函数开始执行的,但是在main函数我们其实只能看到一个方法,这个方法内部是一个消息循环(相当于一个死循环),因此运行到这个方法UIApplicationMain...第四个参数是UIApplication的代理类字符串,默认生成的是AppDelegate类,这个类主要用于监听整个应用程序生命周期的各个事件,当UIApplication运行过程引发了某个事件之后会调用代理对应的方法...加载mian.storyboard 并实例view controller 3. 分配新视图控制器到窗口root viewcontroller,然后使窗口显在示屏幕上。...创建并实例view controller 3. 分配新视图控制器到窗口root viewcontroller,然后使窗口显在示屏幕上。 四大对象关系图和程序启动流程图 ? ?

1.5K20

iOS屏幕旋转及其基本适配方法

我们首先有个大致的了解,控制屏幕旋转优先级为:工程Target属性配置(全局权限) = Appdelegate&&Window > 根视图控制器> 普通视图控制器。...3.Appdelegate&&Window设置 正常情况下,我们的AppAppdelegate启动,而Appdelegate所持有唯一的Window对象是全局的,所以在Appdelegate文件设置屏幕旋转也是全局有效的...比如说我们设置要单个视图控制器可以自动旋转,这需要在视图控制器增加shouldAutorotate方法返回YES或者NO来控制。...但如果存在上层根视图控制器,而我们只在这个视图控制器实现方法,会发现这个方法是不走的,因为这个方法被上层根视图控制器拦截了。理解这个原理后,我们有两种方法实现自动可控的旋转设置。...界面A到界面B,如果我们使用第五节方法1会遇到无法显示默认横屏的情况,因为没有旋转设备,shouldAutorotate就没被调用,也就没法显示我们需要的横屏。

9K60

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

语法上 说,UIViewController是视图控制器的父类。视图控制器类是没有可视表示的抽象类,只有它管理的视图才提供可视画布。记住:1....UIView视图使用initWithFrame:初始,而其UIViewController则使用init类方法直接初始。3....不过,也可以视具体情况,我们直接在一个独立的视图控制器创建UITabBarController实例对象,自定义一个用于视图 切换的控制器类ViewSwitcherViewController,就可在其中的...代码一是由initWithNibName:方法来加载具体的某个视图控制器并自定义该控制器TabBarItem样式外观等。...控制器加载视图过程 当调用视图控制器的view属性时,视图控制器会先调用loadView方法加载视图,因此,可以在loadView方法创建所有的视图,这是比较好的编程惯例。

5K50

如何解决Xcode的SIGABRT错误

在本教程,您将学习: 如何解决Xcode的“ Signal SIGABRT”错误 如何在Xcode中使用某些调试工具 SIGABRT代表什么,其原因是什么 找到SIGABRT根本原因的3种方法 准备好...在编辑器,我们看到可怕的线程1:信号SIGABRT错误。突出显示了编辑器的第12行,即类的定义AppDelegate。 在底部,您会看到有用的调试输出。...这是发生了什么: 您在Interface Builder创建了一个新的视图控制器,并使用一些UI元素(例如按钮和标签)对其进行了设置 您可以通过使用插座属性将这些UI元素连接至代码,这将在视图控制器的属性与...(大致而言),您的应用程序将使用XIB文件生成视图控制器的UI。...该应用程序此时告诉我们,视图控制器不符合该键的键值编码button。这意味着它无法button在视图控制器上找到该属性。没错,因为我们已经对其进行了重命名。

5.9K20

UIWindow使用纯代码加载根控制器2. UIWindow的创建过程3. 四大对象之间的关系

UIWindow/使用纯代码加载根控制器 UIWindow是一种特殊的UIView,通常在一个app只会有一个UIWindow -iOS程序启动完毕后,创建的第一个视图控件就是UIWindow,接着创建控制器的...UIViewController *mainController = [[UIViewController alloc] init]; // 给窗口指定根视图控制器 window.rootViewController...application 根据项目配置文件info.plist里面的storyboard的name,找到对应的storyboard 接下来创建一个window 之后创建它的初始控制器(就是箭头所指向的控制器...,当程序加载完毕,调用代理的didFinishLaunchingWithOptions:方法。...在该方法,创建一个Window 然后创建一个控制器,并把该控制器设置为UIWindow的根控制器 接下来再将window显示出来,即看到了运行后显示的界面。 3.

1.7K30

iOS-UIWindow详解

iOS程序启动完毕后,创建的第一个视图控件就是UIWindow,接着创建控制器的View,最后将控制器的View添加到UIWindow上,于是控制器的View就显示在屏幕上了。...系统在加载storyboard的时候会做以下三件事情 创建窗口 加载mian.storyboard 并实例view controller 分配新视图控制器到窗口root viewcontroller...info.plist,判断后发现没有main,就不会加载storyboard,也就不会帮我们创建UIWindow,那么我们需要自己在程序启动完成的时候也就是在didFinishLaunchingWithOptions方法创建...[self.window addsubview:rootVc.view];可直接将控制器的view添加到UIWindow,并不理会它对应的控制器,但是这种方法违背了MVC原则,当我们需要处理一些业务逻辑的时候就很麻烦了...3.通过storyboard加载控制器 刚才我们提到过系统在加载storyboard的时候会做以下三件事情 创建窗口 加载mian.storyboard 并实例view controller 分配新视图控制器到窗口

1.9K40

【iOS开发-22】navigationBar导航栏,navigationItem建立:获取导航栏的基本文本和button以及各种跳跃

我们当然也能够利用自己创建的导航条button来覆盖原来导航控制器产生的默认的button,“<Back”。 相同。...须要创建两个视图控制器(ViewController根视图控制器,SecondViewController子视图控制器),然后放在导航控制器。...而且在AppDelegate.m中进行把导航控制器赋值给self.window.rootViewController。...UIColor whiteColor]; [self.navigationItem setTitleView:textView1]; //设置导航条的左右button //先实例创建一个...事实上是导航控制器在控制,在里面的元素都能够通过navigationController属性获取到它们所在的导航控制器 //所以(2)获取到导航控制器之后,使用Push的那个方法,往栈里面放一个视图控制器

2.2K10
领券