控制器跳转小常识

关于控制器跳转需要注意的问题:

一般三种方式进行跳转: push,modal,custom

一般跳转相应实现方法和注意点:

1.[self.navigationController pushViewController:jump animated:YES];

适合跳转到代码编写的View上或者xib描述的View。

如果想跳转到storyboard搭建的controller用[self performSegueWithIdentifier:@"jump" sender:self];

这种方法适合storyboard搭建的controller之间的跳转,如果你是纯代码写的View或xib描述的,无法设置segue,也就是不能实现跳转,如果真的用了【alloc init】创建,如果xib描述或者代码描述的View则跳转到相应View,如果啥都没有对View进行描述,只是storyboard进行描述,那么很抱歉,反正我不知道怎么主动加载它,只知道有两个主动加载的,一个是加载箭头所指的,一个是加载标示符对应的,但是这些是设置程序运行时最先加载的View,我们这里并不是这样,所以压根就不是跳转到storyboard所描述的样子,而是系统创建的一个view,显示为黑色,你没有去代码设置数据则没有数据显示

2.[self presentModalViewController:jump animated:YES];

注意:如果还想要modal回上一个界面还需要另外设置个按钮专门监听点击

[self dismissModalViewControllerAnimated:YES];

3.在storyboard中点击ctrl从自身controller连接到另外一个controller设置跳转方式,一般我设置push,然后为segue绑定标示符,作用:跳转的时可以知道要跳转的相应controller,因为有时候一个控制器对应好几条线,这时就体现了标示符的作用了,只需要进行代码判断,手动跳转就行

[self performSegueWithIdentifier:@"jump" sender:self];

注意:如果在storyboard创建了controller,没有进行连线关联和设置Segue,只是设置了自定义classes类名,直接使用[self.navigationController pushViewController:jump animated:YES];进行跳转的话跳转得到的并不是storyboard中创建的view的样子,而是系统自动创建的一个view,而且颜色是黑色的,这就是很多不注意导致所说的跳转黑屏和没有数据的问题,因为都不是同一个View,肯定没数据,数据都设置在了storyboard中,但是并不是加载的storyboard的view

注意:如果使用了xib描述的view,突然想换代码编写,发现还出现xib描述的界面,记得clear一下,保险一点就是卸载软件,在clear。

时间: 2024-11-15 15:45:27

控制器跳转小常识的相关文章

安卓小常识(2)

1)创建一个android项目 填写项目信息 2)      创建一个新Activity 右键点击Eclipse左边(默认)你要加入Activity的包,比如,我的包是com.INdroid.layout.然后选New->Class,输入类名后(注意首字母大写),在Superclass的Browse那里点击.最后在Choose a type那里输入Activity.然后点OK就可以了 3)      创建Activity布局 在rec/layout文件夹里创建布局xml页面 new->othe

C#小常识,持续更新..

1.cs部分添加隐藏样式IntegratedEquipmentblock.Style.Add("display", "none"); 2.gridview添加奇偶行样式 protected void gvIntegratedEquipmentList_RowDataBound(object sender, GridViewRowEventArgs e) { //添加样式-----------begin switch (e.Row.RowType) { case Da

投影机使用维护保养小常识

投影机使用维护保养小常识 随着教育信息化进程的不断推进,各级各类学校都斥资兴建了多媒体教室.LCD投影机是多媒体教室中最重要的设备之一,又非常贵重,因此维护并保养好投影机成为投影机在使用时,有些用户要求信号源和投影机之间有较大距离,如吊装的投投影机是一种精密电子产品,它集投影机在使用时,有些用户要求信号源和投影机之间有较大距离,如吊装的投影机一般都距信号源15米以上,这时相应信号电缆必须延长.由此会造成输入投影机的信号发生衰减,投影出的画面会发生模糊拖尾甚至抖动的现象.这不是投影机发生故障,也不

安卓小常识(3)

Bundle bunde = this.getIntent().getExtras(); getIntent得到一个Intent,是指上一个activity启动的intent,这个方法返回intent对象,然后调用intent.getExtras()得到intent所附带的额外数据 至于说所谓的额外数据是什么数据,之后弄明白再处理. 安卓小常识(3),布布扣,bubuko.com

Android Studio使用中的小常识

1.如何继承抽象类? 1.1新建一个类如下: public class PersonDBOpenHelper{ } 1.2手写extends 你继承的类名 public class PersonDBOpenHelper extends SQLiteOpenHelper{ } 系统会提示此类要么定义为抽象类,要么实现父类的抽象方法.此处我们要做的是实现父类方法. 1.3右键单击SQLiteOpenHelper,在弹出菜单中单击"Generate...",在弹出菜单中单击"Imp

UI - 视图控制器跳转另一个视图控制器特效总结

1. 从一个视图控制器跳转另一个视图控制器的方式是可以进行设置的 CATransition *animation = [[CATransition alloc]init]; animation.duration = 1; animation.type = @"pageCurl";  //立方体翻滚效果 animation.subtype = @"fromBottom";  //从底部开始 [self.view.window.layer addAnimation:an

网络小常识

1. 路由器不会转发广播流量 每个VLAN都是一个单独的广播域,VLAN之间不会交换广播流量,所以说一个VLAN也被称为一个广播域 任何一台LAN交换机都不会转发错包(至少运行正常的LAN交换机不会如此行事) 除非有特殊配置,否则LAN交换机会从除接收端口以外的所有端口转发多播流量 只有开启多播路由功能的路由器才会转发多播流量 在每一个Ethernet(LAN)中,都会存在数量合理的广播数据包:若非如此,主机之间便不能正常通信.但倘若广播数据包的数量过多,则反过来又会影响网络的正常运行 2. 网

iOS:极光推送控制器跳转

在前面已经做完了极光消息的推送,那么有消息了,如何跳转到需要的控制器呢?其实,主要还是在userInfo这个消息里面做判断来处理,具体如下: 下面这两个是远程推送时接收消息的方法,这是应用程序提供的方法,只要成功注册了极光推送,推送消息时,就会调用这两个方法,在这两个方法收到的userInfo消息做判断即可. // Required,For systems with less than or equal to iOS6 -(void)application:(UIApplication *)ap

美女必备美容护肤知识大全护肤小常识

美女必备美容护肤知识大全护肤小常识随着外界的污染和岁月的流逝,肌肤会出现各种各样的问题.下面小编为你搜集了各种各样的美容护肤的小窍门,针对不同的肌肤问题,是美女必备的美容护肤知识大全,下面来学习学习吧!方法/步骤护肤小窍门一 :啤酒收缩毛孔取面膜碗,倒入适量的啤酒,再将压缩面膜浸入啤酒中,三分钟后,取出,稍柠出一点多余的水分.敷于脸部,待水分快吸干时,在浸入反复如此,敷半个小时,再用冷水洗净脸部,毛孔不见了,肌肤也会变得非常的紧致....护肤小窍门二 :酸奶蜂蜜保湿...将酸奶和蜂蜜取同样的分量