如何在xcode中将字符串值从一个viewcontroller传递给另一个没有xib的?
我怎样才能从我的firstviewcontroller类传递一个字符串变量到secondviewcontroller类?这里secondviewcontroller类只有“.m”和“.h”文件; 目前secondviewcontroller “.h” 头文件如何在xcode中将字符串值从一个viewcontroller传递给另一个没有xib的?
@property(nonatomic,retain) NSString *value2;
在
secondviewcontroller.m
文件
我在我的firstviewcontroller.m
文件中使用
NSString *str=value2;
NSLog(@"%@",str);
// it prints a null
我像分配
secondviewcontroller *second=[[secondviewcontroller alloc]init];
second.value2=value1;
值1在firstviewcontroller为字符串声明..请告诉我一个解决方案
试着分配你的value1。
firstviewcontroller。米
NSString *value1 = [[NSString alloc] initWithString:@"my value1"];
,然后分配vc.value2 = value1;
最可能的原因出现在这里是您没有合成第二个视图控制器的.m文件中的属性。除非你综合这个属性,否则它不会启动,并且将是零。请发布整个代码。
您需要为该属性声明一个变量并合成该属性,以便将该值赋予该变量。
让我知道如果不是这样。
我syntheszd ..itnot问题 – Naveen 2013-03-16 09:35:54
合成你的propery并与自己一起使用它。值2。
希望这会解决您的问题。
所有最好的!
通常的逻辑是:
注:既VALUE1和值2的数据类型必须相同。
首先放入secondVC.h
文件
NSString *value2;
给予其@property
和@synthesize
正常。
在你firstVC.m
NSString *value1 = @"this is string"; // in your case check it is, proper or not (i mean nil/not nill)??
,并在创建的
secondVC *vc = [[secondVC alloc] init];
vc.value2 = value1;
[self presentModalViewController:vc animated:YES];
对象和secondVC.m
文件
NSLog(@"%@",value2);
写,并检查了放在控制台。
确定这是我的第一个视图控制器有厦门国际银行文件
.H
#import "SecondViewController.h"
@interface ViewController : UIViewController
@property(strong, nonatomic) SecondViewController * svc;
@end
和第二,没有厦门国际银行。
.H
#import <UIKit/UIKit.h>
@class ViewController;
@interface SecondViewController : UIViewController
@property (strong, nonatomic) ViewController * vc;
@property (strong, nonatomic) NSMutableString * passValue;
@end
在实施
第一.M是viewDidLoad中
- (void)viewDidLoad
{
NSLog(@"viewDidLoad");
[super viewDidLoad];
svc=[[SecondViewController alloc] init];
svc.vc=self;
NSString * str= svc.passValue;
NSLog(@"%@",str);
svc.passValue =[@"StringFromFirstView" mutableCopy];
[svc viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
和在第二.M
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
passValue = @"mySValue";
// Custom initialization
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
NSLog(@"passValue %@",passValue);
// Do any additional setup after loading the view.
}
,当我运行代码
2013-03-16 13:11:40.178 ali[787:c07] viewDidLoad
2013-03-16 13:11:40.179 ali[787:c07] mySValue
2013-03-16 13:11:40.180 ali[787:c07] passValue StringFromFirstView
你从第一个VC走到第二个VC? – CRDave 2013-03-16 09:26:17
检查您的VALUE1 ...是否为零? – iPatel 2013-03-16 09:26:23
您是否在SecondViewController.m中合成了属性 – 2013-03-16 09:27:30