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

如果当前有两个视图控制器 MainViewController 和 SecondViewController

实现让SecondViewController 传值给 MainViewController  :

1. 首先在 SecondViewController.h

// 1. 协议传值

// 协议由后面的视图控制器制定

@protocol SecondDelegate <NSObject>

// 传值协议的方法需要带一个或多个参数

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

@end

@interface SecondViewController : UIViewController

// 2.设置自己的 代理人 属性

@property (nonatomic, assign) id<SecondDelegate>delegate;

2. 在 SecondViewController.m 的实现方法中:

- (void)buttonClicked:(UIButton *)button

{

// 3. 让自己的代理人 调用 协议方法

[self.delegate passValueWithString:button.currentTitle];

}

3. 在MainViewController.h 中:

// 4. 由第一个视图控制器 签订 第二个视图控制器的协议

@interface MainViewController : UIViewController<SecondDelegate>

4. 在MainViewController.m 中:

- (void)buttonClicked:(UIButton *)button

{

SecondViewController *secondVC = [[SecondViewController alloc] init];

// 5. 给第二个视图控制器 指定代理人

secondVC.delegate = self;

}

时间: 2024-11-05 16:23:06

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

UI 07 _ 导航视图控制器 与 属性传值

首先, 先创建三个VC. 完成点击按钮, 进入下一页, 并能够返回. 要先把导航视图控制器创建出来. 在AppDelegate.m 文件中代码如下: #import "AppDelegate.h" #import "MainViewController.h" @interface AppDelegate () @end @implementation AppDelegate - (void)dealloc{ [_window release]; [super dea

URL原理在视图控制器间跳转的运用

一.问题引入 一个视图控制器对应一个UI界面,那么UI界面的跳转,底层就得实现视图控制器的跳转. 那么当界面多,且界面跳转情况复杂时,需在视图控制器中添加业务逻辑,并且增加视图控制器之间的藕合度.在java中网页跳转有xml解决此问题,但是在iOS中,系统并没有提供解决方案. 二.认识URL NSString *urlString = @"http://weibo.com/p/100808a4b68909c606cae3953d196c16efa8bd?k=%E6%B5%B7%E5%8D%97%

Snail—UI学习之导航视图控制器UINavigationController(系统)

背景 有一个根视图控制器 然后跳转到第一个界面  第一个界面可以返回到根视图 也可以跳转到第二个视图 第二个视图可以直接返回到根视图 新建三个ViewController    RootViewController FirstViewController SecondViewController 首先在AppDelegate.m中写入 #import "WJJAppDelegate.h" #import "WJJRootViewController.h" @impl

UI 指派初始化方法 视图控制器 button响应方法

1 #import "MainViewController.h" 2 3 @interface MainViewController () 4 // 延展 :管理类私有的属性和方法 5 @end 6 7 @implementation MainViewController 8 // 指派初始化方法 9 - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 10 { 11 self

iOS视图控制器之间delegate传值教程

之前在StackOverFlow上看到一篇讲传值(segue传值和delegate传值)的文章,感觉讲的很清晰,就将delegate部分翻译了一下,有兴趣可以看看. 原文: http://stackoverflow.com/questions/5210535/passing-data-between-view-controllers 译文: 为了从ViewControllerB往回传值到ViewControllerA,我们需要使用协议(Protocols)和代理(Delegates). 为了实现

【iOS开发-26】利用协议代理实现导航控制器UINavigationController视图之间的正向传值和反向传值

实验说明 (1)正向传值:比如A类里地值要传给B类用,就是我们先在A类中声明一个B类对象(当然B类头文件要import过来),然后把A类中得某个值传递给B类中得某个值(所以需要在B类中先准备一个变量来接受,就是用@property和@synthesize整个变量即可). (2)反向传值:比如需要把B类中的值传递给A类用.我们先在B类中写一个协议,协议里面有一个可以带参数的方法,这个参数就是我们要传递的值(这个协议也可以单独写,不一定写在B类中),然后B类遵循这个协议后,利用这个协议创建一个委托变

集合视图控制器(CollectionViewController) 、 标签控制器(TabBarController) 、 高级控件介绍

  1 创建集合视图,设置相关属性以满足要求 1.1 问题 集合视图控制器UIConllectionViewController是一个展示大量数据的控制器,系统默认管理着一个集合视图UICollectionView,功能几乎和UITableViewController差不多,能够以多行多列的形式展示数据. 集合视图UICollectionView继承至UIScrollView,也同tableView一样有两个协议,分别是UICollectionViewDataSource数据源协议和UIColl

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 secondViewContr

UI开发----自定义视图和视图控制器(Controller)

//  Created By 郭仔  2015年04月14日21:34:01 一.自定义视图: 根据需求的不同,?自定义视图继承的类也有所不同.?一般?自定义的 视图会继承于UIView.以下是?自定义视图的要点: 1.创建?一个UIView?子类 2.在类的初始化?方法中添加?子视图 3.类的.h?文件提供?一些接?口(?方法),便于外界操作?子视图 ================== 这里以label-textfield自定义视图为例: 把Label和Textfield封装到LTView中