-2

FirstViewController に Display UILabel プロパティがある 3 つのタブベースのアプリを作成しました。FirstViewController に表示するデータを保持する SecondViewController タブ (すべて Sotoryboard) がありますが、取得せずにこれを実現することはできません。エラー。デリゲートを使用してみましたが、アプリがクラッシュしてしまいます。

これは、私のアプリで一番の問題です。誰でもこの問題に光を当てることができますか?

View 自体から FirstViewController に NSString 値を渡す SecondViewController の例はありますか?

例:

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.

最初のView Controllerには、次の名前のUILabelがあります。

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

Storyboard の UIlabel に接続されていますが、NSString *valueString を作成してそのデータを displayValue プロパティ ラベルに表示することはできません。

ここに誰でもこれを行う最善の方法がありますか? 必要に応じて、デリゲートをどこに配置しますか?

4

3 に答える 3

0

それを達成するには2つの方法があります。1.共有データ用のシングルトンクラスを作成します(あなたの場合、あるViewControllerから別のViewControllerに渡したい文字列)。

2. appDelegate クラスで共有データを宣言します (文字列を共有するだけなので、2 番目の方法を使用する必要があります)。

appDelegate.h で文字列を宣言します

@property(retain,nonatomic) NSString *YourString;

2番目の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 に答える
0

最初のビュー コントローラー .m ファイルで 2 番目のビュー コントローラーを作成する場合:

secondViewController.delegage = self;

2 番目の View Controller .m ファイルのボタンをクリックすると、次のようになります。

[delegate.displayValue setText:valueString];

2 番目のビュー コントローラーの .h で:

@property (strong, nonatomic) FirsViewController *delegate;
于 2013-10-18T05:04:51.053 に答える
-2

方法で試してください...

IN secondViewController

make the object of the FirstView.

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