我正在使用Storyboard和iOS 6.1,我正在启动这样的视图:
PropertiesViewController *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"Properties"];
PropertiesViewController
高度为60像素,包括一些标签等。我想将这些视图添加到另一个ScrollView
作为子视图。我正在做什么:
controller.leftLabel.text = @"Test";
controller.background.image = [UIImage imageNamed: @"someimage.png"];
controller.view.frame = CGRectMake(0, currentHeight, controller.view.frame.size.width, cellHeight);
[self.scrollView addSubview: controller.view];
leftLabel是{{1}},backgorund是UILabel
。问题是视图的元素都没有在UIImageView
之外更新。 PropertiesViewController
只是添加了它的创建方式,不允许配置。
我已经检查了addSubview:
方法,如果我没有错,那不是关于更新实例。我还已经在接收器类中添加了一个方法来更新NSNotificationCenter
内的标签。这甚至都行不通。
我做错了什么?
注意:您可能会问为什么我没有使用PropertiesViewController
。必须有更多的动态资源,而且还不清楚。使用ScrollView也无法使用TableView,在某些情况下我从不使用TableView,因此scrollview将管理滚动。
任何帮助都会很棒。
修改
根据Kalpesh在这里的回答我做了什么:
在我的发件人视图控制器中:
TableView
这是接收者:
PropertiesViewController *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"Properties"];
[[NSNotificationCenter defaultCenter] postNotificationName:@"update" object:@"Test string"];
controller.view.frame = CGRectMake(0, currentHeight, controller.view.frame.size.width, cellHeight);
// not sure how but I can change frame successfully.
[self.scrollView addSubview: controller.view];
答案 0 :(得分:5)
试试这个,当你想要改变文本标签时,你必须从其他viewcontroller发送通知 ..
[[NSNotificationCenter defaultCenter] postNotificationName:@"changetext" object:stringobj];
-(void)viewDidLoad
{
[[NSNotificationCenter defaultCenter] removeObserver:self];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(changetext:) name:@"changetext" object:nil];
}
- (void) changetext:(NSNotification *)notification
{
NSString * text =[notification object];
lbl.text=text;
}