我的TodayViewController
课程实现如下:
#import "TodayViewController.h"
#import <NotificationCenter/NotificationCenter.h>
@interface TodayViewController () <NCWidgetProviding>
@end
@implementation TodayViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
NSLog(@"yeehaw");
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (void)widgetPerformUpdateWithCompletionHandler:(void (^)(NCUpdateResult))completionHandler {
// Perform any setup necessary in order to update the view.
// If an error is encountered, use NCUpdateResultFailed
// If there's no update required, use NCUpdateResultNoData
// If there's an update, use NCUpdateResultNewData
NSLog(@"gitalong");
completionHandler(NCUpdateResultNewData);
}
- (UIEdgeInsets)widgetMarginInsetsForProposedMarginInsets:(UIEdgeInsets)defaultMarginInsets{
NSLog(@"yowza!");
return UIEdgeInsetsZero;
}
@end
基本上,这是在您的应用中创建Today
目标时XCode提供的样板实现。我所做的唯一更改是在每个函数中添加一些NSLog()
调用,并删除widgetMarginInsetsForProposedMarginInsets()
函数中的默认左边距(as per the method in this SO thread)。
但是,当我查看系统日志输出时,我的NSLog
语句都没有输出,并且默认的左边距没有消失,所以我认为由于某种原因,我的应用程序是完全没有阅读/处理TodayViewController
课程,即使它正确显示我的MainInterface
故事板。
有谁知道为什么会这样?
我忘了提到的一个细节是我用来实现接口的MainInterface.storyboard
文件是从同一个项目的另一个版本复制到这个项目中的。我能够通过从头开始重新创建整个项目并从头开始重新创建界面来解决这个问题,因此我在“工作”项目中使用的MainInterface.storyboard
文件是XCode生成的原始文件。虽然这个策略解决了我当前的问题,但我仍然不明白为什么我从另一个项目导入的storyboard
文件不起作用。这给接口重用带来了问题。我仍然想知道如何将导入的storyboard
文件与自定义ViewController
相关联。