假设我有两个UIViewController
被调用的子类MasterViewController
和DetailViewController
。
DetailViewController
有一个类型NSNumber
为 calledlevel
和一个UILabel
called的属性levelLabel
。
MasterViewController
有一个DetailViewController
叫ToDetail
. MasterViewController
的 prepareForSegue 是这样的
- (void)prepareForSegue:(UIStoryboardSegue)segue sender:(id)sender
{
if ([segue.identifier isEqualToString:@"ToDetail"]) {
DetailViewController *detailVC = (DetailViewController *)segue.destinationViewController;
detailVC.level = [NSNumber numberWithInt:10]; // never mind the literal...pretend there was some algorithm for it
}
}
那么,在DetailViewController
我们实现 levelLabel 的 setter 时,如下所示:
- (void)setLevelLabel:(UILabel *)levelLabel
{
if (levelLabel) {
_levelLabel = levelLabel;
_levelLabel.text = level.stringValue;
}
}
这是好的代码设计吗?另外,你能批评一下我的代码编写风格吗?我几乎是在运行中编写了所有这些代码,所以这几乎就是我编写代码的大部分方式。
我在洗澡的时候想到了这个问题,因为这是我实现几乎所有依赖于 segue 的标签文本的设置的方式。