iOS 页面之间如何传值

iOS 码拜 9年前 (2015-08-12) 1335次浏览

 我要从A页面传值(字典)给B页面,什么方式传值好呢?

#1

10分

 跳转到页面B的时候 ,B已经创建了吧,那么,你可以在B里面声明一个属性,在A里面创建B的时候,将B的属性赋值即可。

#2

10分

例如:

xxxViewController *document = [[xxxViewController alloc] initWithStyle:UITableViewStyleGrouped];

document.docDict = [self.dataArray objectAtIndex:indexPath.row];

document.properties = 要传的值

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

[document release];

#3

10分

可以使用全局变量,也可以使用类的属性进行传值。

比如可以使用ClassB中的对外公开的变量进行赋值

比如:

在自定义ClassB.h中代码如下:

#import <Foundation/Foundation.h>

@interface ClassB : NSObject

@property (nonatomic, retain) NSMutableDictionary *myDic;

@end

在自定义ClassB.m中代码如下:

#import “ClassB.h”

@implementation ClassB

@synthesize myDic;

@end

在自定义类ClassA中要想引用ClassB类,并且给ClassB中的参数传值,可以如下:

自定义ClassA.h中代码如下:

#import <Foundation/Foundation.h>

@interface ClassA : NSObject

-(void)testMethod;

@end

自定义ClassA.m中代码如下:

#import “ClassA.h”

#import “ClassB.h”

@implementation ClassA

-(void)testMethod

{

    NSMutableDictionary *tmpDic = [NSDictionary dictionaryWithObject:@”xixi” forKey:@”name”];

    ClassB *myClassB = [[ClassB alloc] init];

    myClassB.myDic = tmpDic;

}

@end

如上就可以给对象myClassB中的字典参数传值了。

另外,也可以使用全局变量,比如使用单例AppDelegate的对象进行传值:

AppDelegate *appDlg = (AppDelegate *)[[UIApplication sharedApplication] delegate];

#4

5分

想到四个途径:

1)使用代理

2)使用通知notification

3)使用NSUserdefault

4)使用全局变量,如在appdelegate里面定义一个变量用于传值

#5

5分

回复4楼:

1,2楼说得最简单了,为什么要这么麻烦呢?没有异步操作,最好不要用以上几种途径,个人建议而已。


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明iOS 页面之间如何传值
喜欢 (0)
[1034331897@qq.com]
分享 (0)