我目前坚持弄清楚为什么我的值没有在xcode中传递。我的代码看起来正确,但由于某种原因未通过。
这是TheView.h的样子
//View Header File
#import <UIKit/UIKit.h>
IB_DESIGNABLE
@interface TheView : UIView
@property NSString *dateTimeString;
@end
和TheView.m
// m file of View
#import "TheView.h"
@implementation TheView
// Display method here with dateTimeString in parems
[DrawCanvas dateText: self.dateTimeString];
@end
在我的控制器.h文件中,我有此代码
// Controller File
#import "TheView.h"
@interface MainViewController: UIViewController
@property (weak, nonatomic) IBOutlet TheView *rootView;
@end
MainViewController .m文件
#import "MainViewController.h"
#import "TheView.h"
@interface MainViewController ()
@property (string, nonatomic) NSTimer *currentTime;
@end
@implementation MainViewController
-(void)updateTime
{
// prints date successfully
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
NSLocale time = [[NSLocale alloc] initWithLocaleIdentifier:@"en_GB"];
dateFormatter.locale = time;
formatString = [NSDATEFORMATTER dateFormatFromTemplate:@"EEEE, hh:mm" options:0 locale:[NSLocale currentLocale]];
[dateFormatter setDateFormat:formatString];
NSString *resultString = [dateFormatter stringFromDate:[NSDate date]];
// Current issue is that it isn't passed from here to TheView.m
[_rootView setdateTimeString:resultString];
}
据我在调试中了解到的,控制器的字符串给出了我需要的结果,但它只是没有设置值。
如果此代码有帮助,则将其称为viewWillAppear,因此它将调用updateTime方法,并且从理论上讲不会为零。
答案 0 :(得分:1)
似乎DisplayView
中声明了TheView.h
。 DisplayView
应该在DisplayView.h
和DisplayView.m
要设置值时,只需说_rootview.dateTimeString = resultString;
设置断点,并在设置resultString
时检查是否为零。