Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何删除Objective C中的视图_Ios_Objective C_Uitableview_Cocoa Touch_Uiviewcontroller - Fatal编程技术网

Ios 如何删除Objective C中的视图

Ios 如何删除Objective C中的视图,ios,objective-c,uitableview,cocoa-touch,uiviewcontroller,Ios,Objective C,Uitableview,Cocoa Touch,Uiviewcontroller,我有一个带有标签的视图(CupsViewController),点击时,TableView(AddressTableController)从屏幕底部滑动并停留在下半部分。 在TableView中,当按下Ok按钮时,我想更改Label的值,并通过动画删除TableView(即滑动到底部) 这是我的密码: CupsViewController 单击标签时调用的方法 按下按钮时从AddressTableController调用的方法 图像 如您所见,我尝试了removeFromSuperview,但

我有一个带有
标签的
视图
CupsViewController
),点击时,
TableView
AddressTableController
)从屏幕底部滑动并停留在下半部分。 在
TableView
中,当按下
Ok按钮
时,我想更改
Label
的值,并通过动画删除
TableView
(即滑动到底部)

这是我的密码:

CupsViewController

单击标签时调用的方法

按下
按钮时从
AddressTableController
调用的方法

图像


如您所见,我尝试了
removeFromSuperview
,但它没有任何作用。如何将
TableView
滑动到底部?

您的
myTableView
属性似乎返回了一个不同的视图,而不是
视图
属性中引用的视图。因此,您基本上将前者添加为子视图(
[[self view]addSubview:[addressTableController myTableView]];
),但尝试删除后者(
[addressTableController.view removeFromSuperview];

照办

[[addressTableController myTableView] removeFromSuperview];
而不是

[addressTableController.view removeFromSuperview];
给你。干杯,伙计!:)


附言。 如果要设置视图的动画,可以这样做

[UIView animateWithDuration:1.0 delay:0 options:UIViewAnimationOptionBeginFromCurrentState animations:^{
    // animation code...
} completion:^(BOOL finished) {
    [[addressTableController myTableView] removeFromSuperview];
}];

是否
[addressTableController myTableView]
addressTableController.view
返回相同的对象?如果我返回
addressTableController.view
,则表将显示在实际视图的底部(就像现在一样)和上方,覆盖所有屏幕。因此
addressTableController.myTableView
不等于
addressTableController.view
。如果您尝试
[[addressTableController myTableView]removeFromSuperview]而不是
[addressTableController.view removeFromSuperview]?因为您将前者添加为子视图,而不是后者。您是否试图更改tableview的大小以使其覆盖更少的屏幕?或者,您是否试图将其完全移出屏幕,然后将其从视图中完全移除?我不太确定你想做什么动画,然后你想要什么效果。我假设您希望完全在屏幕外设置视图的动画,然后将其从超级视图中删除,使其不再保留在视图层次中?请澄清!您好,我想,您正在创建addressTableController的两个不同对象,并尝试删除其他对象而不是添加的对象。。
[addressTableController.view removeFromSuperview];
[UIView animateWithDuration:1.0 delay:0 options:UIViewAnimationOptionBeginFromCurrentState animations:^{
    // animation code...
} completion:^(BOOL finished) {
    [[addressTableController myTableView] removeFromSuperview];
}];