iOSiOS开发之退出功能(易错)

如果,我们有两个控制器,第一个控制器是MainController,它是与Main.storyboard相关联的。第二个控制器是myController。假设myController中有一个退出按钮,点击退出按钮从myController返回到MainController,特别注意的是,下面写法是错误的:

self.view.window.rootViewController = [[MainController alloc] init];

因为这样去切换一个和storyboard文件相关联的控制器的话,他不会主动去加载storyboard文件。正确的切换方法是:

UIStoryboard *storyboard =

[UIStoryboard storyboardWithName:@"Main" bundle:nil];

UIViewController *mainVc = [storyboard instantiateInitialViewController];

self.view.window.rootViewController = mainVc;

如果Main.storyboard中有多个Controller,我们可以给我们要加载的那个控制器设置一个Identifier,假设为"IDmain"。我们可以按照如下方式加载:

UIStoryboard *storyboard =

[UIStoryboard storyboardWithName:@"Main" bundle:nil];

UIViewController *mainVc =

[storyboard instantiateViewControllerWithIdentifier:@"IDmain"];

self.view.window.rootViewController = mainVc;

时间: 2024-08-16 02:32:03

iOSiOS开发之退出功能(易错)的相关文章

开发易错点收集

开发易错点收集 1.java 比较字符串内容是否相等,需要使用方法 boolean java.lang.String.equals(Object arg0),直接使用 == 判断的是两个串的地址是否相等. jvm加载jar是按照文件名排序后加载的,加载一次后不会重复加载.也就是说程序目录lib中同时存在 TestJar1.jar 和 TestJar2.jar,运行时加载的是TestJar1.jar < 2.javaScript ''==0 返回为true ,用全等返回false,对于喜欢用if(

软考程序员新手易错笔记

1.●标准化对象一般可分为两大类:一类是标准化的具体对象,即需要制定标准的具体事物:另一类是  (4)  ,即各种具体对象的总和所构成的整体,通过它可以研究各种具体对象的共同属性.本质和普遍规律. (4) A.标准化抽象对象    B.标准化总体对象    C.标准化虚拟对象    D.标准化面向对象 [解析]:标准化对象一般可分为两类:一类是标准化的具体对象:另一类是标准化的总体对象. 2.●用二进制加法器对二-十进制编码的十进制数求和,当和大于1010时,  (5)  . (5) A.不需要

Javascript易错知识点

? JS易错知识点总结: == 和 === 的区别: ==:判断两个变量的值是否相等. ===:判断两个变量的类型和值是否都相等,两个条件同时满足时,表达式为True. switch中break的作用: 如果一个case后面的语句,没有写break,那么程序会向下执行,而不会退出: 例如:当满足条件的case 2下面没有break时,case 3也会执行 1 var num = 2; 2 switch(num){ 3 case 1: 4 alert('case 1'); 5 break; 6 c

黑马程序员---C基础3【变量的易错】【程序结构】【if语句】【Switch语句】

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- [变量的易错] 1.变量为什么要初始化为0 int  sum,a=3: sum = sum+a 如果未初始化则会成为一个不确定的变量,结果也会不确定,容易出错. 2.不同类型的变量之间的转换 切记int  a=1,b=0:b=1-1.5:其中b为一个整型所有结果是保留整数部分的0,而不是-0.5,又因为0没有正负之分,所有保存结果为b=0: 3.关于Xcode的一个快速注释的插件 快捷键://

细节!重点!易错点!--面试java基础篇(一)

今天来给大家分享一下java的重点易错点部分,也是各位同学面试需要准备的,欢迎大家交流指正. 1.java中的main方法是静态方法,即方法中的代码是存储在静态存储区的. 2.任何静态代码块都会在main方法之前执行. 3.java程序的初始化顺序:原则:静态优先于非静态,且只初始化一次:父类优先于子类:按照成员定义顺序初始化.例顺序:父类静态变量,父类静态代码块,子类静态变量,子类静态代码块,父类非静态变量,父类非静态代码块,父类构造函数,子类非静态变量,子类非静态代码块,子类构造函数. 4.

JavaScript易错知识点整理

本文是我学习JavaScript过程中收集与整理的一些易错知识点,将分别从变量作用域,类型比较,this指向,函数参数,闭包问题及对象拷贝与赋值这6个方面进行由浅入深的介绍和讲解,其中也涉及了一些ES6的知识点. JavaScript知识点 1.变量作用域 var a = 1; function test() { var a = 2; console.log(a); // 2 } test(); 上方的函数作用域中声明并赋值了a,且在console之上,所以遵循就近原则输出a等于2. var a

IOS开发之支付功能概述

前言:本随笔将对IOS开发的支付功能进行一个概述. 内容大纲: 一.常见的支付方案简介 二.第三方支付SDK 三.苹果官方支付方案 四.Web支付方案 正文: 一.常见的支付方案简介 在微信支付中 微信支付的网址是: https://pay.weixin.qq.com/wiki/doc/api/index.html 进去之后,我们可以看到网页,但我接下来主要讲的是app支付 app支付的过程:商业app通过集成微信SDK,用户解析后跳转到微信内软件支付的过程. 点进去app支付: 我们可以看到A

易错的快排---qsort()

来看看快速排序的几个易错点: void qsort(int l,int r) { long long mid=a[(l+r)>>1]; //*1 千万不可以写成: mid=(l+r)>>1 然后:while(a[i]<a[mid]) i++; //因为数组的顺序在变化,当i越过mid的时候,会因为a[i]==a[mid]而退出 //那样你锁定的就不是中间值,而是中间位置了 int i=l,j=r; do { while(a[i]<mid) i++; while(a[j]

细节!重点!易错点!--面试java基础篇(二)

今天来给大家分享一下java的重点易错点第二部分,也是各位同学面试需要准备的,欢迎大家交流指正. 1.字符串创建与存储机制:当创建一个字符串时,首先会在常量池中查找是否已经有相同的字符串被定义,其判断的依据是String类型equals的返回值,若已经定义,则直接获取对其的引用.此时不需要创建新的对象,如果没有定义,首先创建这个对象,然后把它加入到字符串池中,再将它的引用返回.(例:new String(”aaa“)可能创建了1个或者2个对象,如果常量池中原来有aaa那么之创建了一个对象,如果没