2

複数のビューを持つプログラムがあり、そのうちの1つにはラベル(この質問のLabelView)があり、もう1つにはテキストフィールド(この質問のTextView)があります。テキスト フィールドから情報を取得し、それをラベルに配置したいと思います。これを行う最も簡単な方法は、TextView から LabelView メソッドを呼び出すことです。

私はいくつかのことを試しました:

  1. パラメータでラベルの値を変更するメソッドをLabelViewに入れてみました。次に、TextView でメソッドを呼び出し、パラメーターを介してデータを渡します。

  2. この質問を使用して、デリゲートを作成してみました。残念ながら、最後のステップ (メソッドsettingView.viewControllerDelegate=selfへの追加viewDidLoad) は失敗しました。settingView宣言されていない識別子でした。

私が何をすべきか知っている人はいますか?

編集: Xman の親/子ビューのアイデアを使用して、私が行ったいくつかを次に示します。これは TextView.m にあります。

NSInteger curScore = [self.ToP1Score.text integerValue];
NSInteger curPhase = [self.ToP1Phase.text integerValue];
self.ToP1Score.text = [NSString stringWithFormat:@"%d", (curScore += [self.player1Txt.text integerValue])];
if ([self.player1Txt.text integerValue] < 50) {
    self.ToP1Phase.text = [NSString stringWithFormat:@"%d", (curPhase += 1)];
}
4

2 に答える 2

2

これを実現するには 2 つの方法があります。

1)次のようにプロパティに直接アクセスできるようにChildView、のchildViewとして作成しますParentViewParentViewChildView

ParentView.h

@interface ParentView : UIView
@property (nonatomic,strong) UITextField *mytextField;
@end

ChildView.h

#import "ParentView.h"

@interface ChildView : ParentView
@property (nonatomic,strong) UILabel *myLabel;
@end

2) 利用通知

これを のFirstView場所に入れtextFieldます:

[[NSNotificationCenter defaultCenter] postNotificationName:@"sendData" object:yourTextFiels userInfo:nil];

これをSecondViewあなたのLabelいる場所に置いてください。

[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(changeLabelValue:) name:@"sendData" object:nil];

また、この方法

-(void)changeLabelValue(NSNotification *)iRecognizer {

    UITextField *myTextField = iRecognizer object];

    //Here You can change the value of label
}

これがあなたを助けることを願っています。

于 2013-09-04T05:09:29.343 に答える
0

firststViewController から secondViewController にテキストを渡していると仮定し、次に firststviewcontroller にこれらのコード行を追加します。

-(IBAction)goToNextScreen:(id)sender
{
  secondViewController *newVc = [[secondViewController alloc]initWithNibName:@"secondViewController" bundle:nil];
 // or if you are using storyboard
 // NewViewController *newVc = [self.storyboard instantiateViewControllerWithIdentifier:@"identifier"];
 newVc.text = @" Your text ";
[self.navigationController pushViewController:newVc animated:YES]; 
}

2ndViewController.h ファイル内

#import <UIKit/UIKit.h>

@interface secondViewController : UIViewController
{
  NSString text;
}
@property(nonatomic, retain)NSString text;
@property (weak, nonatomic) IBOutlet UILabel *lbl;

@end

.m ファイルで

#import "secondViewController.h"

@interface secondViewController ()

@end

@implementation secondViewController
@synthesize text,lbl;

- (void)viewDidLoad
{
   lbl.text = text;
}
@end

これがあなたに役立つことを願っています..投票することを忘れないでください...

于 2013-09-04T05:31:16.947 に答える