-2

我创建了一个基于 3 个选项卡的应用程序,其中 FirstViewController 有一个 Display UILabel 属性,而且我有 SecondViewController 选项卡(All in Sotoryboard),它保存要在 FirstViewController 上显示的数据,但我似乎无法在没有得到的情况下实现这一点错误。我尝试使用代表,但最终导致我的应用程序崩溃。

这是我的应用程序中的第 1 个问题。任何人都可以阐明这个问题吗?

来自 SecondViewController 的任何示例将 NSString 值从 View 本身传递给 FirstViewController ?

例子:

NSString *valueString; // This String holds a value to display onto the First View Controller when i tap a save Button on the same Second View controller.

在第一个视图控制器中,我有一个 UILabel,名为:

  @property (strong, nonatomic) IBOutlet UILabel *displayValue;

它连接到 Storyboard 中的 UIlabel,但似乎无法使 NSString *valueString 将其数据显示到 displayValue 属性标签上。

这里有人有最好的方法吗?如果需要,我会在哪里派代表?

4

3 回答 3

0

在第一个视图控制器 .m 文件中创建第二个视图控制器时:

secondViewController.delegage = self;

当您单击第二个视图控制器 .m 文件中的按钮时:

[delegate.displayValue setText:valueString];

在第二个视图控制器的 .h 中:

@property (strong, nonatomic) FirsViewController *delegate;
于 2013-10-18T05:04:51.053 回答
0

有两种方法可以实现它。1.为共享数据创建一个单例类(在您的情况下,您想要从一个 ViewController 传递到另一个的字符串)。

2.在 appDelegate 类中声明共享数据。(您应该使用第二个数学方法,因为您只想共享字符串)。

在您的 appDelegate.h 中声明您的字符串

@property(retain,nonatomic) NSString *YourString;

现在在您的第二个 viewController 中分配您想要的值。

AppDelegate *appdelegate = [[UIApplication sharedApplication] delegate];
appdelegate.YourString = @"Your VAlue";

现在从第一个 ViewController 访问相同的字符串。

 AppDelegate *appdelegate = [[UIApplication sharedApplication] delegate];



 self.yourLable.text = appdelegate.YourString;

我不能在这里附加源代码。这很简单,你只需按照说明进行操作。

1.打开 AppDElegate.h 文件并粘贴以下代码。

@property(strong,nonatomic) NSString *SharedString;

2.现在打开 SecondViewController.m 并导入 appDelegate.h

#import "AppDelegate.h"

3.在SeconViewController.m中用你的值初始化sharedString

ViewDidLoad
{
 AppDelegate *appdelegate = [[UIApplication sharedApplication] delegate];
    appdelegate.SharedString=@"Any String";

}
  1. 打开 FirstViewController.m 并导入 appDelegate.h

    #import "AppDelegate.h"

5.在 FirstViewController.m 中粘贴以下代码

- (void)viewDidAppear:(BOOL)animated
{
    AppDelegate *appdelegate = [[UIApplication sharedApplication] delegate];
    self.YouLable.text = appdelegate.SharedString;
    [super viewDidAppear:NO];

}
于 2013-10-18T05:13:21.510 回答
-2

尝试方式...

在第二个视图控制器中

make the object of the FirstView.

FirstView *fc=[[FirstView alloc]initWithNibName:@"FirstView" bundle: nil];
fc.displayValue.text= ValueString;
于 2013-10-18T05:05:17.777 回答