我想使用 - (void)drawRect:(CGRect)rect来管理UIViewController的一些不错的输出。那是因为我创建了一个UIView子类。现在我可以将图片输出到UIViewController。现在我遇到了一个问题,如何将包含主题,文本等所需的所有数据的对象传递给UIView子类,并且该对象是在UIViewController类中创建的。
我以这种方式创建对象:
- (void)viewDidLoad
{
self.setQualityButton.hidden=YES;
//[self setTheItem:theItem];
[drawItemDetails setTheItem:theItem]; //drawItemDetails is my UIView subclass
//theItem is an object I've retained from TableView and it's not empty
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
}
在drawItemDetails(UIView子类)中:
-(void)setTheItem:(ItemShow*)inputTheItem;
{
if(theItem!=inputTheItem)
{
[theItem release];
theItem=inputTheItem;
[theItem retain];
}
[self setNeedsDisplay];
NSLog(@"%@",theItem.itemYear); //output null
}
出了什么问题,这种数据传递方法是否完全有效?
答案 0 :(得分:0)
将数据传递给视图就好了 - 如果您正在设置UILabel的文本,那么您所执行的操作大致相同。
你似乎对自定义视图-drawRect:
所做的事情听起来很奇怪/错误。任何视图的-drawRect:
都应该在为其设置的上下文中绘制视图,就是这样。它不应该关心视图控制器,尝试将数据传递给其他对象等。如果你告诉我们更多关于你想要完成的事情,我们可能会提供更好的选择。