0

別のページで何かを行うためのボタンを作成する必要があります。同じページ(同じviewcontroller)で必要なものを作成するボタンをコーディングする方法も知っていますが、そのボタンを別のページ(別のviewcontroller)で開くこともできますが、同時に両方を作成するにはどうすればよいですか?

これは単純な電卓の例です。

  • プログラムを開く
  • 2 つの数字を入力してください
  • ボタンをクリックします
  • SecondPage が表示され、最初のページの結果が表示されます

代議員のことですか?説明してください。

私はいくつかの回答を受け取りました。それを簡単にして、2ページ目にあるラベルに何かを書き込むボタンを作成してくれたことに感謝します。そのコードも簡単に書くことができます。最初のページのボタンは2番目のラベルに何かを書き込みますページ。最初のビュー コントローラーの名前は ru1 です。2 番目のビュー コントローラーの名前は ru2 です。

また、私が初心者であり、あなたの言うことを理解するのに苦労していることをどこに書くべきか説明してもらえますか?

4

3 に答える 3

1

あなたはそれを行うセレクターを作成することができます...

[myButton addTarget:self action:@selector(mySelector) forControlEvents:UIControlEventTouchUpInside];

セレクター

- (void)mySelector {
    myNewViewController *secondController = [[myNewViewController alloc] init];
    [secondController setMyProperty:@"SOME_VAR"];
    [self.navigationController pushViewController:secondController animated:YES];
}

の中にsecondController.h

@property (nonatomic, strong) NSString *myProperty;

の中にsecondController.m

@synthesize myProperty;

2番目の(ru2)コントローラーで-(void)viewDidLoad:

UILabel *lblSecond = [[UILabel alloc] initWithFrame:CGRect(10, 10, 20, 100)];
[lblSecond setText:myProperty];
[self.view addSubview:lblSecond];
于 2012-07-23T18:20:07.447 に答える
0

ボタンのタップ時に「他の」View Controller が存在する場合 (たとえば、ナビゲーション スタックのどこかにある場合)、通知を投稿できます。「他の」View Controller は、init でこれを行う必要があります。

[[NSNotificationCenter defaultCenter] addObserver:self name:YourCustomNotificationName object:nil];

そして、dealloc では:

[[NSNotificationCenter defaultCenter] removeObserver:self];

ボタンタップ時(現在のView Controller):

[[NSNotificationCenter defaultCenter] postNotificationName: YourCustomNotificationName object:self userInfo:someCustomDictionary];

「YourCustomNotificationName」は、両方のビュー コントローラーから見える場所に定義する必要がある NSString です。

必要に応じて、プログラムでボタンを作成している場合は、「addTarget:action:forControlEvents」を呼び出すときに、(self ではなく) 他のビュー コントローラーを使用できます。IBを使用している場合、わかりません...「ファイルの所有者」全体があります...

于 2012-07-23T18:28:29.313 に答える
0

2 番目のビュー コントローラーのヘッダー ファイルに、渡す変数を追加します。

@interface ATSecondViewController : UIViewController <UINavigationControllerDelegate>{
    IBOutlet UITableView *_tableView;
    NSFileManager *fileManager;
    NSString *documentsDir;
    IBOutlet UILabel *top_bar;
}

その新しいコントローラーをプッシュする方法では、次のような方法でアクセスできます。

ATSecondViewController *detailViewController = [[ATSecondViewController alloc] initWithNibName:@"ATBuyTripViewController" bundle:nil];
    detailViewController.documentsDir = @"SOME DIR";

その変数を SecondViewController で合成すると、コードからアクセスできます。

于 2012-07-23T18:10:35.357 に答える