我有View
(CupsViewController
)Label
,点击后,TableView
(AddressTableController
)从屏幕底部滑动,留在下半部分。
在TableView
中,当按下Ok Button
时,我想要更改Label
的值并使用动画删除TableView
(即,滑到底部)。
这是我的代码:
CupsViewController
点击Label
- (IBAction)showPop:(id)sender
{
addressTableController = [[AddressTableController alloc]initWithStyle:UITableViewStyleGrouped];
[addressTableController setDelegate:self];
[[self view] addSubview:[addressTableController myTableView]];
[UIView animateWithDuration:1.0 delay:0 options:UIViewAnimationOptionBeginFromCurrentState animations:^{
[[addressTableController myTableView] setFrame:CGRectMake(0, kScreenHeight * 0.5, kScreenWidth, kScreenHeight * 0.5)];
} completion:nil];
}
按下AddressTableController
时从Button
调用的方法
- (void)addressTableController:(AddressTableController *)viewController didChooseValue:(int)value {
direccionLabel.text = [[[[myAppDelegate usuarioActual] cups] objectAtIndex:value] direccion];
[addressTableController.view removeFromSuperview];
}
图片
正如您所看到的,我尝试过使用removeFromSuperview
,但它什么也没做。如何将TableView
滑到底部?
答案 0 :(得分:1)
似乎您myTableView
属性返回不同的视图,而不是view
属性中引用的视图。所以你基本上将前者添加为子视图([[self view] addSubview:[addressTableController myTableView]];
),但尝试删除后者([addressTableController.view removeFromSuperview];
)。
只做
[[addressTableController myTableView] removeFromSuperview];
而不是
[addressTableController.view removeFromSuperview];
你走了。队友的欢呼声! :)
P.S。 如果你想为视图设置动画,你可以这样做
[UIView animateWithDuration:1.0 delay:0 options:UIViewAnimationOptionBeginFromCurrentState animations:^{
// animation code...
} completion:^(BOOL finished) {
[[addressTableController myTableView] removeFromSuperview];
}];