如何在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为字符串声明..请告诉我一个解决方案

+0

你从第一个VC走到第二个VC? – CRDave 2013-03-16 09:26:17

+0

检查您的VALUE1 ...是否为零? – iPatel 2013-03-16 09:26:23

+0

您是否在SecondViewController.m中合成了属性 – 2013-03-16 09:27:30

试着分配你的value1。

firstviewcontroller。米

NSString *value1 = [[NSString alloc] initWithString:@"my value1"]; 

,然后分配vc.value2 = value1;

+0

:让我试试,但我记得有二硝基甲苯为的.xib secondview conrtroller – Naveen 2013-03-16 10:03:17

+0

我问大约值1这是内部firstviewcontroller吧?所以请尝试这种方式为value1。 – 2013-03-16 10:04:32

+0

它不适用于该方法 – Naveen 2013-03-16 10:36:10

最可能的原因出现在这里是您没有合成第二个视图控制器的.m文件中的属性。除非你综合这个属性,否则它不会启动,并且将是零。请发布整个代码。

您需要为该属性声明一个变量并合成该属性,以便将该值赋予该变量。

让我知道如果不是这样。

+0

我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); 

写,并检查了放在控制台

+0

它不是工作亚尔 – Naveen 2013-03-16 09:39:50

+0

@ Naveen-的话,我认为你值1的问题,否则这个逻辑是对:) – iPatel 2013-03-16 09:42:11

+0

iPatel值1打印yar..i不KNWŸ值2不prinitng – Naveen 2013-03-16 09:46:14

确定这是我的第一个视图控制器有厦门国际银行文件

.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