早安男士,
我有问题。我有一个应用程序进行计算。如果我在同一个ViewController中插入Label,我会全部观看。
如何在另一个视图中插入相同的标签?
这是有计算的视图。
小时。
#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
微米。
//
// 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
谢谢
答案 0 :(得分:2)
为什么要尝试将同一标签插入另一个视图。只需将label.text(string)传递给另一个视图控制器的字符串即可。然后使用该字符串并在viewdidload方法中使用此字符串创建新标签。您也可以使用nsuserdefaults传递值。
答案 1 :(得分:0)
你可以在共享和
中保持对它的引用[yourLabel removeFromSuperview];
[yourViewController.view addSubview:yourLabel];
对于要在其上显示的每个视图控制器。
但是,如果您共享的内容几乎与UILabel一样,我建议为每个视图控制器使用单独的UILabel实例,并在视图之间共享.text值。您可以传递prepareForSegue中的值,将其保存到NSUserDefaults,将其设置为某个共享对象/单例的属性。