2016-02-08 81 views
1

我知道这个问题已经回答过,但我在这些之间有困难。在一个页面上有一个文本框,我想通过点击按钮来检索它的内容到位于下一页的标签中。将数据从一个页面提取到另一个

我试过这个。 tfName是文本框的ID在1

-(IBAction)onClick:(id)sender 
{ 
NSString *string1 =tfName.text; 
} 

页和第2页中

- (void)viewDidLoad { 
    [super viewDidLoad]; 
label1.text=string1; 
} 
+0

你有使用故事板吗? –

+0

您是使用故事板还是xib –

+0

我正在使用.xib –

回答

1

这里是简单的例子的代码:

类A.H:

UITextfield *tfName; 

类A.M:

tfName.text = @"Hello world"; 




-(IBAction)onClick:(id)sender 
{ 
    ClassB *b = [[ClassB alloc][email protected]"ClassB"]; 
    b.string1 =tfName.text; 
    [self.navigationController pushViewController:b animated:YES]; 
} 

类B.h:

@Property(..)NSString *string1; 

类B.m:

label1.text = _string1. 

注意:您需要导入ClassB的在ClassA的,即#import "ClassB.h"

希望这有助于。

+0

谢谢..它的工作原理 –

0

首先创建视图控制器对象,然后将值分配给该属性。

-(IBAction)onClick:(id)sender 
    { 
    SecondViewController *tempView = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil]; 
     tempView. string1 = tfName.text; 
     [self.navigationController pushViewController:tempView animated:YES]; 

    } 

SecondViewController.h创建像

@Property(nonatomic, Strong)NSString *string1; 

您的实现SecondViewController.m的一个全局字符串systensize你的字符串像

@Synthesize string1; 

最后调用像

- (void)viewDidLoad { 
[super viewDidLoad]; 
if (string1.length >0) 
label1.text=string1; 
} 
+0

你怎么能通过弹出视图控制器中的数据,是否有可能直接传递... –

+0

对不起,它的pushviewcontroller不popViewController –

+0

你在哪里创建string1变量是在这个页面或调用页面。 –

0

做一个Singleton类

class DataModel { 

class var sharedInstance: DataModel { 
    get { 
     struct Static { 
      static var instance: DataModel? = nil 
      static var token: dispatch_once_t = 0 
     } 
     dispatch_once(&Static.token, { 
      Static.instance = DataModel() 
     }) 
     return Static.instance! 
    } 
} 

var textData:String = "" 

}

按钮自来水做到这一点:

DataModel.sharedInstance.textData = "page 1 data" 

在第2页的viewDidLoad基金

label1.text = DataModel.sharedInstance.textData 

这应该做工精细!

相关问题