当前位置:  编程技术>移动开发
本页文章导读:
    ▪segue分析总结        segue分析小结 在iOS开发中,segue用来实现storyboard中源视图控制器和目标视图控制器连接,当segue被触发时,系统将完成下列操作: 1、实例化目标视图控制器 2、实例化一个新segue对象,该对.........
    ▪ Fragment 集锦        Fragment 汇总 【厦门】 12月22日(周六下午)OSC 源创会 我要报名»用tabhost和fragment做底部tab,切换fragment的时候,第一个fragment会一致存在,fragment里有一个textview,那么每次replace fragment,第.........
    ▪ 产品-想要出一个美的产品需要注意的几点(纯属个人想法)       产品--想要出一个好的产品需要注意的几点(纯属个人想法) 1、以用户导向。很多人都会说这句话,但有谁真正做到这点呢?曾经听过一个产品经理说的话:“Android上有没有这个功能没关系,反.........

[1]segue分析总结
    来源: 互联网  发布时间: 2014-02-18
segue分析小结

在iOS开发中,segue用来实现storyboard中源视图控制器和目标视图控制器连接,当segue被触发时,系统将完成下列操作:

1、实例化目标视图控制器
2、实例化一个新segue对象,该对象持有所有的信息
3、调用源视图控制器的prepareForSegue:sender:方法,
4、调用segue的 perform 方法将目标控制器带到屏幕上。这个动作行为依赖segue的类型如modal,push,custom.modal segue告诉源视图控制器present目标视图控制器。

在源视图控制器的prepareForSegue:sender:的方法中,执行任何必要的目标视图控制器的属性配置,包括委托设置(如目标视图控制器有协议)。

 

(miki西游 @mikixiyou 原文链接: http://mikixiyou.iteye.com/blog/1745995 )

在apple的文档库中第二个示例应用开发文档中,介绍了这样一个segue的使用例子。

在源视图控制器实现代码中,实现prepareForSegue:sender:方法

- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([[segue identifier] isEqualToString:@"ShowSightingsDetails"])
    {
        DetailViewController *detailViewController = [segue destinationViewController];
        detailViewController.sighting = [self.dataController objectInListAtIndex:[self.tableView indexPathForSelectedRow].row];
    }
 
    if ([[segue identifier] isEqualToString:@"ShowAddSightingView"])
    {
        AddSightingViewController *addSightingViewController = [[[segue destinationViewController] viewControllers] objectAtIndex:0];
        addSightingViewController.delegate = self;
    }
}

 

这个实现方法代码是用来处理在storyboard中配置的从主视图控制器到不同的两个视图控制器的segue。这两个segue通过它们的identifier属性进行判断。


在identifier为"ShowSightingsDetails"的segue中,目标视图控制器是一个展示明细信息的视图控制器,使用的segue类型为push。这种通常用于navigator视图控制器中。
当用户选择表视图中的一行时,segue发生。传输数据到目标视图控制器,使目标控制器上能显示sighting。

在identifier为"ShowAddSightingView"的segue中,目标视图控制器管理的是一个增加新的sighting信息的视图,我们称之为add视图控制器。它是不需要从主视图控制器(源)传什么数据过来的。但是,主视图控制器需要获取在add视图控制器(目标)上输入的数据。
实现方式是采用delegate,将主视图控制器设置为add视图控制器(目标)的委托。在目标视图控制器上执行它的委托中方法,该方法需要先在主视图控制器的实现代码中实现,方法包括如何读取add视图控制器的数据,并dismiss掉add视图控制器。

在add视图控制器上,有两个按钮,用于执行cancel和done操作。这两个按钮操作的方法在主视图控制器中实现。

- (void)addSightingViewControllerDidCancel:(AddSightingViewController *)controller
{
[self dismissViewControllerAnimated:YES completion:NULL];
}


- (void)addSightingViewControllerDidFinish:(AddSightingViewController *)controller name:(NSString *)name location:(NSString *)location {
if ([name length] || [location length]) {
[self.dataController addBirdSightingWithName:name location:location];
[[self tableView] reloadData];
}
[self dismissModalViewControllerAnimated:YES];
}

 

在add视图控制器实现代码中,调用它的委托中这两个方法。


在storyboard中segue有三种类型,分别为modal segue、push segue、custom segue。


modal segue

是一个视图控制器(源)为了完成一个任务而模态地(modally)呈现另一个视图控制器(目标)。这个目标视图控制器不是导航视图控制器(navigation view controller)的栈中的一部分。
在任务完成后,使用delegate将呈现的视图控制器(目标)释放掉,应用界面切换到原来的视图控制器(源)上。

这个过程的实现代码可以看成是present和dismiss两个操作。

 

push segue
是将另一个视图控制器压入到导航控制器的栈中。它通常和导航视图控制器(navigation view controller)一起使用。
新压入的视图控制器会有一个回退按钮,可以退回来上一层。

这个过程的实现代码可以看成是push和pop两个操作。

 


    
[2] Fragment 集锦
    来源: 互联网  发布时间: 2014-02-18
Fragment 汇总
【厦门】 12月22日(周六下午)OSC 源创会 我要报名»
用tabhost和fragment做底部tab,切换fragment的时候,第一个fragment会一致存在,fragment里有一个textview,那么每次replace fragment,第一个分别和第二次和第三次重叠显示。下面的途中就是replace后的显示。怎么取消这种覆盖?求解,有点急

http://www.oschina.net/question/270164_76863


http://www.oschina.net/android/177/fragment?type=0&sort=time&p=1

    
[3] 产品-想要出一个美的产品需要注意的几点(纯属个人想法)
    来源: 互联网  发布时间: 2014-02-18
产品--想要出一个好的产品需要注意的几点(纯属个人想法)

1、以用户导向。很多人都会说这句话,但有谁真正做到这点呢?曾经听过一个产品经理说的话:“Android上有没有这个功能没关系,反正老总用的是iPhone不会看Android客户端”。。。

 

2、出一个功能要考虑是否有真正的产出。在出一个功能的之前要考虑好,这个功能是否有用户会使用,你在上面花的时间和用户的使用率是否成正比。并不是做好这个很复杂的功能就是有产出了。

 

3、一定要注意产品的性格。好的产品一定会有自己的性格。如果你的产品是“东拼西凑”的话,那你的产品不会成功。体验可以参考,但不能借鉴。

 

4、注意收集用户反馈。这点非常重要!能收集到一条用户反馈是很困难的,想想谁愿意在那么小的设备(手机)上打那么多字?所以,手机上收集用户反馈的时候要注意方式。见过flava之前的版本里的收集方式很不错,只要用户点击+1就行了。比较容易收集。

 

 

PS:纯属个人看法,有不同意见,请留言,共同探讨。


    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3