重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
使用Block的地方很多,其中传值只是其中的一小部分,下面介绍Block在两个界面之间的传值:
创新互联公司2013年成立,是专业互联网技术服务公司,拥有项目成都网站设计、网站建设网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元伊州做网站,已为上家服务,为伊州各地企业和个人服务,联系电话:028-86922220
先说一下思想:
首先,创建两个视图控制器,在第一个视图控制器中创建一个UILabel和一个UIButton,其中UILabel是为了显示第二个视图控制器传过来的字符串,UIButton是为了push到第二个界面。
第二个界面的只有一个UITextField,是为了输入文字,当输入文字,并且返回第一个界面的时候,当第二个视图将要消失的时候,就将第二个界面上TextFiled中的文字传给第一个界面,并且显示在UILabel上。
其实核心代码就几行代码:
下面是主要代码:(因为我是用storyBoard创建的工程,所以上面的属性和相应的方法,是使用系统生成的outlet)
一、在第二个视图控制器的.h文件中定义声明Block属性
?
1
2
3
4
5
6
7
8
9
typedef void (^ReturnTextBlock)(NSString *showText);
@interface TextFieldViewController : UIViewController
@property (nonatomic, copy) ReturnTextBlock returnTextBlock;
- (void)returnText:(ReturnTextBlock)block;
@end
第一行代码是为要声明的Block重新定义了一个名字
?
1
ReturnTextBlock
这样,下面在使用的时候就会很方便。
第三行是定义的一个Block属性
第四行是一个在第一个界面传进来一个Block语句块的函数,不用也可以,不过加上会减少代码的书写量
二、实现第二个视图控制器的方法
?
1
2
3
4
5
6
7
8
9
- (void)returnText:(ReturnTextBlock)block {
self.returnTextBlock = block;
}
- (void)viewWillDisappear:(BOOL)animated {
if (self.returnTextBlock != nil) {
self.returnTextBlock(self.inputTF.text);
}
}
其中inputTF是视图中的UITextField。
第一个方法就是定义的那个方法,把传进来的Block语句块保存到本类的实例变量returnTextBlock(.h中定义的属性)中,然后寻找一个时机调用,而这个时机就是上面说到的,当视图将要消失的时候,需要重写:
?
1
- (void)viewWillDisappear:(BOOL)animated;
方法。
三、在第一个视图中获得第二个视图控制器,并且用第二个视图控制器来调用定义的属性
如下方法中书写:
?
1
2
3
4
5
6
7
8
9
10
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
// Get the new view controller using [segue destinationViewController].
// Pass the selected object to the new view controller.
TextFieldViewController *tfVC = segue.destinationViewController;
[tfVC returnText:^(NSString *showText) {
self.showLabel.text = showText;
}];
}
就是 代码的例子。比如说你有不会用的控件,从网上下载这个控件的demo 照着敲两遍,在理解一下它的意思,就会了。
简单的模子。就是不需要实现细节,给别人看一个大致轮廓的东西。还有一层意思是很多功能中的一个,单独拿出来实现。
第1步:为你的应用程序添加finger tips
制作demo时最重要的事情就是引导用户,这样他们就知道在什么地方与应用进行互动,他们希望应用能够在屏幕上导航。(我第一次是在Kevin Systrom的Instagram keynote上看到的)。
这一步并不难实现,可以通过GitHub上的开源项目完成(你也可以观看Apple TV上的现场演示。)
“Fingertips是一个小型库(一个类),可以演示iOS设备上所有触控和手势。”
只需两步,就可以让你的应用程序活起来。你需要做的就是:
1、把以下代码添加到你的Podfile中(希望你使用了Cocoapods):
pod 'Fingertips'
2、把下面5行代码添加到AppDelegate的didFinishLaunchingWithOptions中:
UIViewController *vc = self.window.rootViewController;
CGRect frame = [[UIScreen mainScreen] bounds];
self.window = [[MBFingerTipWindow alloc] initWithFrame:frame];
self.window.rootViewController = vc;
[self.window makeKeyAndVisible];
• 不要忘了#import
现在Air Mirroring你的app,你就可以发现一个超酷的触控指示圈:
第2步:录制一个简短的演示视频
记录真实设备屏幕的最好的方法是使用Reflector(13美元)。这是我个人最喜欢的。
它使用Air Mirror显示Mac上的iOS设备,并支持屏幕记录。
你可以选择是否展示frame以及使用哪个设备。
使用CMD+ R开始和停止录制。
第3步:把视频转换成GIF
下一步就是使用GIF Brewery(Mac App Store售价5美元)把演示视频转换为GIF。
有了这个工具,你只需选择开始和结束时间,这样就可以创建GIF。
你可以通过预览来决定是否要缩短或者加长视频时间。
通过这些步骤,你可以快速高效地为iOS应用创建一个demo。当然也有其它方法,我只是介绍一个我知道的,可以用来制作一个简洁简单直观demo的方式。