在另一个视图中更改标签

时间:2013-09-04 04:54:36

标签: ios objective-c delegates

我有一个包含多个视图的程序,其中一个有标签(LabelView用于此问题),另一个有文本字段(TextView用于此问题)。我想从文本字段中获取信息,并将其放在标签上,我认为最简单的方法是从TextView调用LabelView方法。

我尝试了几件事:

  1. 我尝试在LabelView中添加一个方法,该方法使用参数更改了标签的值。然后在TextView中调用该方法并通过参数传递数据。

  2. 我尝试使用this问题制作代理人。不幸的是,最后一步(向settingView.viewControllerDelegate=self方法添加viewDidLoad)失败了。 settingView是未声明的标识符。

  3. 有谁知道我应该做什么?

    编辑:这是我用过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)];
    }
    

2 个答案:

答案 0 :(得分:2)

实现这一目标的两种方法。

1)将ChildView设为ParentView的子视图,以便您可以直接访问ParentView中的ChildView个属性,如下所示

<强> 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
}

希望这会对您有所帮助。

答案 1 :(得分: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
<。>文件中的

#import "secondViewController.h"

@interface secondViewController ()

@end

@implementation secondViewController
@synthesize text,lbl;

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

希望这会对你有所帮助..别忘了投票......