2011-12-05 61 views
4

我正在制作一个应用程序,其行为类似iPhone中的默认Messages.app,其中用户在UITextField中撰写短信并点击发送按钮时,值在ComposeViewController中的UITextField将被转移到表格单元的UILabel中的一个自定义单元格MasterViewControllerDetailViewController其中另一个UILabel将从UITextField获得文本值。 DetailViewController是用户从UITableViewCells中点击单元格时加载的ViewController如何从文本字段发送文本到另一个视图控制器

我实际上阅读了下面的相关文章,但它在我的结尾没有用。

  • 如何将文本从textfield发送到另一个类?
  • 如何在另一个文本字段中查看一个文本字段中的文本?
  • 如何文本字段值发送到另一个类

能否请您指导我如何正确地实现这一点?我知道这很容易。我只是不知道为什么它不起作用。 ComposeVC是ModalViewController而DetailVC是当用户点击MasterVC表格中的单元格时加载的视图。

非常感谢!

下面是我对ComposeVC.h代码:

UITextField *messageTextField; 

    @property (nonatomic, retain) IBOutlet UITextField *messageTextField; 

    - (IBAction)buttonPressed:(id)sender; 

为ComposeVC.m

synthesize messageTextField; 

    -(IBAction)buttonPressed:(id)sender 
    { 
     DetailVC *detailVC = [[DetailVC alloc] init]; 
     detailVC.messageText = messageTextField.text; 
    } 

为DetailVC.h

NSString *messageText; 

    @property (nonatomic, copy) NSString *messageText; 

为DetailVC.m

@synthesize messageText; 

    - (void)viewLoad 
    { 
     testLabel.text = messageText; 
    } 

testLabel是我的DetailVC中的UILabel。

+0

看这一个: http://stackoverflow.com/questions/8162777/pass-object-from-vc-to-app-delegate/8163590#8163590 –

+0

谢谢,但它只是让我感到困惑了。我需要的仅仅是将UITextField中的值传递到其他VC上,就像在Messages.app中构建ModalVC上的文本消息一样,并将文本值传递给单元格和消息泡泡。 – jaytrixz

回答

0

您可以简单地在另一个viewController上创建属性。假设你的文本框是在厂景,你​​想发送对视图2则:

鉴于2 .h文件中

#interface view2:UIViewController { 
NSString *str; 
} 
@property (nonatomic, retain) NSString *str; 

在.m文件 @synthesize海峡

;

现在你可以在厂景发送文本查看2,如:

objView2.str = txtField.text; 

对于另一个使用一个浏览文本框的文本 secondTextField.text = firstTextField.text;

希望这有助于让我知道,如果你正在寻找不同的东西。

+0

我编辑了我的问题上面。请参阅更改。到目前为止,你的答案是最接近的答案。提前致谢。我会尝试你的建议。 – jaytrixz

+0

我认为它的工作原理是因为我的testLabel变为空白。任何建议,为什么它是这样的? – jaytrixz

+0

您是否通过创建IBOutlet从您的界面构建器映射了您的testLabel? –

0

试试这个:

#interface SecondView:UIViewController 
{ 
    NSString *stringSecond; 
} 

@property(nonatomic, retain) NSString *str; 

在首先查看U必须创建这样一个参考:

#import "SecondView.h" 

SecondView *detailViewController = [[SecondView alloc] initWithNibName:@"SecondView" bundle:nil]; 

detailViewController.stringSecond = @"Some string"; 
+0

这与上述答案是一样的,但它仍然显示为空白。 – jaytrixz

+0

我认为你没有为字符串变量分配内存。 detailViewController.stringSecond = [NSStringalloc] init]; detailViewController.stringSecond = @“一些字符串”; –

0

采取在应用程序委托一个变量像appdelegate.h

@interface appdelegate 
{ 
NSString *str1; 
} 

@property (nonatomic, retain) NSString *str; 

在.m文件中进行合成。

在编辑textfield(app del.str = textfield.text,即设置值)后设置文本。并使用相同的位置。

NSString *str = appdel.str(getting value); 
+0

对不起,我不太明白。 – jaytrixz

相关问题