0

早上好家伙,

我有个问题。我有一个进行计算的应用程序。如果我在同一个 ViewController 中插入标签,我会观看所有内容。

如何在另一个视图中插入相同的标签?

这是有计算的视图。

H。

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController

@property (strong, nonatomic) IBOutlet UITextField *textField1;
@property (strong, nonatomic) IBOutlet UITextField *textField2;

@property (strong, nonatomic) IBOutlet UIButton *result;

@property (strong, nonatomic) IBOutlet UIDatePicker *data;


@end

M。

//
//  ViewController.m
//  IEcigarette
//
//  Created by Federico on 24/11/12.
//  Copyright (c) 2012 Federico. All rights reserved.
//

#import "ViewController.h"
#import "ResultViewController.h"



@interface ViewController ()
@property (strong, nonatomic) NSString * myString;

@property (strong, nonatomic) UILabel * myLabel;
@end

@implementation ViewController

-(IBAction)calculate:(id)sender{



    NSDate *past = _data.date ;
    NSDate *now = [NSDate date];

    NSCalendar *gregorianCalendar = [[NSCalendar alloc]
                                     initWithCalendarIdentifier:NSGregorianCalendar];
    NSUInteger unitFlags = NSDayCalendarUnit;
    NSDateComponents *components = [gregorianCalendar components:unitFlags
                                                        fromDate:past
                                                          toDate:now
                                                        options:0];
    int z = [components day];
    int a = ([_textField1.text intValue]);
    int b = a*([_textField2.text intValue]);

    int r = b * z / 20;

    _myLabel.text = [[NSString alloc] initWithFormat:@"%d", r];
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
}

- (BOOL)textFieldShouldReturn:(UILabel *)myLabel {

    [myLabel resignFirstResponder];

    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
        [self performSegueWithIdentifier:@"detail" sender:self];
    }

    return YES;
}

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    if ([segue.identifier isEqualToString:@"detail"]) {

        ResultViewController* destVC = (ResultViewController*)segue.destinationViewController;

        destVC.myString = self.myLabel.text;
        destVC.navigationItem.title = self.myLabel.text;

    }
}

@end

谢谢

4

2 回答 2

2

为什么您还尝试将相同的标签插入另一个视图。只需将 label.text (字符串)传递给另一个视图控制器的字符串。然后使用该字符串并在 viewdidload 方法中使用该字符串创建一个新标签。您还可以使用 nsuserdefaults 传递值。

于 2012-11-26T14:03:35.177 回答
0

可以在共享和调用中保留对它的引用:

[yourLabel removeFromSuperview];
[yourViewController.view addSubview:yourLabel];

对于您要在其上显示的每个视图控制器。

但是,如果您共享的内容几乎可以用作 UILabel,我建议您为每个视图控制器使用单独的 UILabel 实例,并在视图之间共享 .text 值。您可以在 prepareForSegue 中传递值,将其保存到 NSUserDefaults,将其设置为某个共享对象/单例的属性。

于 2012-11-26T14:05:49.417 回答