UI 多个视图控制器(UIViewController)间的 协议传值

  1 #import <UIKit/UIKit.h>
  2
  3
  4
  5 //1.协议传值
  6
  7 // 协议由后面的视图控制器制定
  8
  9 @protocol secondDelegate <NSObject>
 10
 11
 12
 13 //协议的方法需要带一个或多个参数
 14
 15 - (void)passValueWithString:(NSString *)string;
 16
 17
 18
 19 @end
 20
 21
 22
 23 @interface secondViewController : UIViewController
 24
 25
 26
 27 //2.设置自己的 代理人 属性
 28
 29 @property (nonatomic, assign) id<secondDelegate> delegate;
 30
 31
 32
 33 @end
 34
 35 ==================================================
 36
 37 - (void)buttonAction:(UIButton *)button
 38
 39 {
 40
 41     NSLog(@"suck");
 42
 43     //3.让自己的代理人 调用 协议方法
 44
 45     [self.delegate passValueWithString:button.currentTitle];
 46
 47     [self.navigationController popViewControllerAnimated:YES];
 48
 49 }
 50
 51 ==================================================
 52
 53 在第二个视图控制器的 .h 文件的具体方法中  让自己的代理人 调用 协议方法
 54
 55 - (void)buttonAction:(UIButton *)button
 56
 57 {
 58
 59     NSLog(@"suck");
 60
 61     //3.让自己的代理人 调用 协议方法
 62
 63     [self.delegate passValueWithString:button.currentTitle];
 64
 65     [self.navigationController popViewControllerAnimated:YES];
 66
 67 }
 68
 69
 70 ==================================================
 71
 72 #import <UIKit/UIKit.h>
 73
 74 #import "secondViewController.h"
 75
 76 //4.由第一个viewController 签订 第二个viewController的协议
 77
 78 @interface mainViewController : UIViewController <secondDelegate>
 79
 80
 81
 82 @end
 83
 84
 85
 86 ===================================================
 87
 88 在第一个视图控制器的 .h 文件里的具体方法中实现 以下:
 89
 90
 91
 92 - (void)buttonAction:(UIButton *)button
 93 {
 94     secondViewController *secondVC = [[secondViewController alloc]init];
 95
 96     //5.给第二个viewController 指定代理人
 97     [secondVC setDelegate:self];
 98
 99     [self.navigationController pushViewController:secondVCanimated:YES];
100     [secondVC release];
101 }
102
103 //6.实现协议的方法
104 - (void)passValueWithString:(NSString *)string
105 {
106     NSLog(@"从第二个viewController传来的值: %@", string);
107     UILabel *label = (UILabel *)[self.view viewWithTag:50];
108     [label setText:string];
109 }
时间: 2024-07-30 03:20:45

UI 多个视图控制器(UIViewController)间的 协议传值的相关文章

[转]iOS开发之视图控制器(UIViewController)

视图控制器应该在MVC设计模式中扮演控制层(C)的角色,UIViewController的职责对内管理与之关联的View,对外跟其他UIViewController通信和协调.一个视图控制器管理一个视图(它可以有子视图),其view属性指向它所管理的视图.UIViewController类可以有子类,可以使用一个系统的UIViewController子类或者直接自己创建一个UIViewController的子类. 使用代码创建控制器和视图. 开始创建一个基于窗口的Empty Applicatio

iOS狂暴之路---视图控制器(UIViewController)使用详解

一.前言 在之前的一片文章中已经介绍了 从iOS的第一个应用中能学习到哪些知识点 在那篇文章中主要介绍了一个iOS程序的启动过程和应用的几大对象,以及应用的生命周期,同时也介绍了应用中的控制器知识点,介绍了其生命周期方法,那么对于一个iOS应用一般都是会包含多个页面,而每个页面就是一个控制器,一个控制器一般都是关系到一个UIView的,但是我们在真正使用这些控制器的时候会发现,多个页面之间的跳转关系该如何控制.在之前的文章知道一个应用对应一个窗口对象UIWindow,每个窗口都有一个根控制器对象

iOS开发之视图控制器(UIViewController)

视图控制器应该在MVC设计模式中扮演控制层(C)的角色,UIViewController的职责对内管理与之关联的View,对外跟其他UIViewController通信和协调.一个视图控制器管理一个视图(它可以有子视图),其view属性指向它所管理的视图.UIViewController类可以有子类,可以使用一个系统的UIViewController子类或者直接自己创建一个UIViewController的子类. 使用代码创建控制器和视图. 开始创建一个基于窗口的Empty Applicatio

UI 设置代理 实现视图控制器间的传值操作

如果当前有两个视图控制器 MainViewController 和 SecondViewController 实现让SecondViewController 传值给 MainViewController  : 1. 首先在 SecondViewController.h // 1. 协议传值 // 协议由后面的视图控制器制定 @protocol SecondDelegate <NSObject> // 传值协议的方法需要带一个或多个参数 - (void) passValueWithString:

UI-自定义视图、视图控制器

自定义视图 自定义视图:系统标准UI之外,自己组合而出的新的视图. iOS提供了很多UI组件,借助它们,我们可以做各种程序. 创建步骤 创建一个UIView子类 在类的初始化方法中添加子视图 类的.h文件提供一些接口(方法),便于外界操作子视图 视图控制器 UIViewController:视图控制器: 控制视图显示,响应事件: 分担AppDelegate的工作: 实现模块独立,提高复用性. 视图控制器功能 控制试图大小变换.布局视图.响应事件 检测以及处理内存警告 检测以及处理屏幕旋转 检测视

//快速添加一个视图控制器

//快速添加一个视图控制器 #import <UIKit/UIKit.h> @interface UITabBarController (ZJTabBarExtension) -(UIViewController*)andViewController:(Class)cls title:(NSString*)title image:(NSString*)image; @end @implementation UITabBarController (ZJTabBarExtension) -(UIV

[IOS_UI控件]iPhone应用开发之一:窗口,视图,视图控制器和UIKit基础

1.窗口:UIWindow iPhone的规则是一个窗口,多个视图,窗口是你在app显示出来你看到的最底层,他是固定不变的,基本上可以不怎么理会,但要知道每层是怎样的架构. 2.视图:UIView UIView是用户构建界面的基础,所有的控件都是在这个页面上画出来的,你可以把它当成是一个画布,你可以通过UIView增加控件,并利用控件和用户进行交互和传递数据. 窗口和视图是最基本的类,创建任何类型的用户界面都要用到.窗口表示屏幕上的一个几何区域,而视图类则用其自身的功能画出不同的控件,如导航栏,

如何通过视图控制器UITabBarController实现界面的切换

以下代码实现各个View之间的切换. 创建UITabBarController, 创建视图控制器UIViewControlle 定义控制器的UITabBarItem 将UIViewController数组加入UITabBarController.viewControllers 将UITabBarController设置为窗口的根控制器 为方便看写到了一个文件,要编写每个页面的功能,可以创建继承于UIViewControlle的子类,并在它的init方法里实现一些想要实现的功能. UITabBar

UI 03 UIViewController (视图控制器)的7个方法与视图的跳转

新建一个继承于UIViewController 的类 在AppDelegate.m 中写如下代码. //1.创建一个rootViewController对象 RootViewController *rootVC = [[RootViewController alloc]init]; //2.给window设置根视图控制器 self.window.rootViewController = rootVC; [rootVC release]; 在RootViewController.m文件中的代码如下