iOS 协议使用(二)

ShowViewController在PopViewController拿值。注意设置代理(委托)?就像,我没有委拖你替我办事,你去银行,或者去政府替我办事,人家当然不会处理你

(1)PopViewController.h

#import <UIKit/UIKit.h>

//定义协议

@protocol popNextDeleage <NSObject]]]]>

-(void)passPopReport:(NSString*)string;

@end

@interface PopViewController : UIViewController

@property(nonatomic,retain)NSObject <popNextDeleage>*popDeleage;//声明一个代理

- (IBAction)reportAction:(UIButton *)sender;

@end

(2)PopViewController.m

- (IBAction)reportAction:(UIButton *)sender
{

[self.popDeleage passPopReport:@"举报"];//赋值

}

(3)ShowViewController.h遵守协议popNextDeleage

@interface ShowViewController : UIViewController<iCarouselDataSource,iCarouselDelegate,UIScrollViewDelegate,UITableViewDataSource,UITableViewDelegate,popNextDeleage>{

UIView *moreView;

}

(4)ShowViewController.m

//实现协议(拿到值)

-(void)passPopReport:(NSString *)string{

if ([string isEqualToString:@"举报"])
{

ReportViewController *report = [[ReportViewController alloc] init];

[self.navigationController pushViewController:report animated:YES];

}

}

(5)ShowViewController.m设置deleage

-(void)pop:(id)sender{

PopViewController *pop = [[PopViewController alloc] init];

pop.popDeleage = self;//设置deleage(谁实现了delegate方法就指定给谁)

FPPopoverController *basePop = [[FPPopoverController alloc] initWithViewController:pop];

basePop.tint = FPPopoverLightGrayTint;

basePop.arrowDirection = FPPopoverArrowDirectionAny;

[basePop presentPopoverFromView:sender];

}

时间: 2024-08-08 11:22:22

iOS 协议使用(二)的相关文章

IOS设计模式之二(门面模式,装饰器模式)

本文原文请见:http://www.raywenderlich.com/46988/ios-design-patterns. 由 @krq_tiger(http://weibo.com/xmuzyq)翻译,如果你发现有什么错误,请与我联系谢谢. 门面(Facade)模式(译者注:facade有些书籍译为门面,有些书籍译为外观,此处译为门面) 门面模式针对复杂的子系统提供了单一的接口,不需要暴漏一些列的类和API给用户,你仅仅暴漏一个简单统一的API. 下面的图解释了这个概念: 这个API的使用者

HTTP协议(二)之HTTP请求

一.HTTP请求的方法 在HTTP/1.1协议中,定义了8种发送HTTP请求的方法,有GET.POST.OPTION.HEAD.PUT.DELETE.TRACE.CONNECT.PACH.根据HTTP协议的解释,不同的方法对资源有不同的操作方式: 1.PUT:增 2.DELETE:删 3.POST:改 4.GET:查 其中最常用的时GET和POST.GET和POST的主要区别在数据的传递上. 1.GET 在URL后面以?的形式跟上发给服务器的参数,多个参数之间用&隔开,比如: http://lo

网络通信 --&gt; 互联网协议(二)

互联网协议(二) 一.对上一节的总结 我们已经知道,网络通信就是交换数据包.电脑A向电脑B发送一个数据包,后者收到了,回复一个数据包,从而实现两台电脑之间的通信.数据包的结构,基本上是下面这样: 发送这个包,需要知道两个地址: * 对方的MAC地址 * 对方的IP地址 有了这两个地址,数据包才能准确送到接收者手中.但是,前面说过,MAC地址有局限性,如果两台电脑不在同一个子网络,就无法知道对方的MAC地址,必须通过网关(gateway)转发. 上图中,1号电脑要向4号电脑发送一个数据包.它先判断

零基础学习IOS开发(二)- 使用cocos2d-x3.0 执行Hello world

关于开发框架,依据网上检索来的信息,感觉cocos2d-x的ios游戏开发框架非常不错,并且有非常强的可移植性,因此打算尝试一下. 截止写下此文章,最新的cocos2d-x的版本号为v3.0稳定版(几天前刚刚公布),下载地址为:http://www.cocos2d-x.org/filedown/cocos2d-x-3.0-cn 安装方式例如以下: 1.解压程序压缩包(所在路径不能有中文哦,由于是python,你懂的...) 2.sudo python setup.py 安装cocos2d-x,依

学iOS开发(二)——实现一款App之编写自定义类

今天学iOS开发(二)--实现一款App之编写自定义类 当开发iOS应用程序时,你会发现在许多场景下,你需要编写自己的自定义类.当你需要数据和自定义行为一起打包时,自定义类就很有用了.在一个自定义的类中,你可以为存储.操纵和显示数据定义你自己的行为. 例如,考虑iOS Clock app中的全球时钟标签(World Clock tab).这个表视图中的单元格需要显示比标准表视图单元格更多的内容.这是一个不错的机会实现一个扩展UITableViewCell行为的子类,从而在给定的表视图单元格中显示

iOS事件机制(二)

iOS事件机制(二) DEC 29TH, 2013 本篇内容接上一篇iOS事件机制(一),本次主要介绍iOS事件中的多点触控事件和手势事件. 从上一篇的内容我们知道,在iOS中一个事件用一个UIEvent对象表示,UITouch用来表示一次对屏幕的操作动作,由多个UITouch对象构成了一个UIEvent对象.另外,UIResponder是所有响应者的父类,UIView.UIViewController.UIWindow.UIApplication都直接或间接的集成了UIResponder.关于

Swift学习第八枪--协议(二)

协议(二) 这篇紧接着前面的协议(一)继续总结. 1.委托(代理)模式 委托是一种设计模式,它允许 类 或 结构体 将一些需要它们负责的功能 交由(委托) 给其他的类型的实例.委托模式的实现很简单: 定义协议来封装那些需要被委托的函数和方法, 使其 遵循者 拥有这些被委托的 函数和方 法 .委托模式可以用来响应特定的动作或接收外部数据源提供的数据,而无需要知道外部数据源的类型信息. 下面的例子是两个基于骰子游戏的协议: protocol DiceGame { var dice: Dice { g

【HELLO MAKA】MAKA iOS客户端 之二 架构设计与实现篇

上一篇主要做了MAKA APP的需求分析,功能结构分解,架构分析,API分析,API数据结构分析. 这篇主要讲如何从零做iOS应用架构. [HELLO MAKA]MAKA iOS客户端 之一 APP分析篇 [HELLO MAKA]MAKA iOS客户端 之二 架构设计与实现篇 [HELLO MAKA]MAKA iOS客户端 之三 创作模块分析与实现篇 1.  iOS客户端架构 按照功能模块划分.这里可以使用二层设计也可以使用三层设计.MVC, MVCS, MVVM, MVP, VIPER, DD

微信连WiFi关注公众号流程更新 解决ios微信扫描二维码不关注就能上网的问题

前几天鼓捣了一下微信连WiFi功能,设置还蛮简单的,但ytkah发现如果是ios版微信扫描微信连WiFi生成的二维码不用关注公众号就可以直接上网了,而安卓版需要关注公众号才能上网,这样就少了很多ios用户的关注用户,ios用户的线上消费水平普遍比安卓的高.现在好了,微信连WiFi上线连网后关注公众号的流程更新了,解决ios微信扫描二维码不关注就能上网的问题. 还在为无法转化到店顾客为粉丝而烦恼吗? 微信连WiFi上线连网后关注公众号的新流程,让顾客在连你的WiFi时感知你的品牌,成为你的粉丝.

从零开始学ios开发(二):Hello World!

今天看了书的第二章,主要介绍了一下Xcode的使用方法和一些必要的说明,最后做了一个“Hello World!”的小程序,其实就是在屏幕上用一个Label显示“Hello World!”,一行代码都没有写,拖拖控件,改变一下Label字体大小颜色什么的,还是比较简单的,下面把这个过程写一下,至于xcode的使用说明就不在这里具体叙述了,反正到时候用到哪就介绍到哪里吧. 1)启动Xcode 选择“Create a new Xcode project”,创建一个新的项目. 2)模板选择,选择“Sin