检测UIView何时添加到必须有UIViewController的其他UIView中?

时间:2016-08-10 22:21:21

标签: ios objective-c iphone uitableview uiview

在其他具有UIViewController的UIView中添加UIView时是否有通知或回调。我们可以通过nextResponder得到一个UIView的ViewController,如果它有一个。 (Reference

但是取决于nextResponder是不可靠的,如果没有将UIView添加到具有ViewController的View中,则此方法失败。例如,当我们从UITableViewDataSource的cellForRowAtIndexPath中的单元格响应者调用时。因为在调用cellForRowAtIndexPath时,尚未将已出列的单元格添加到UITableView中。但是,我们可以在- tableView:willDisplayCell:forRowAtIndexPath:中调用该方法,因为在调用- tableView:willDisplayCell:forRowAtIndexPath:时,该单元格已经被添加到TableView中。

1 个答案:

答案 0 :(得分:0)

因此,如果c = pycurl.Curl() c.setopt(c.URL, 'http://pycurl.io/tests/testpostvars.php') post_data = {'field': 'value'} # Form data must be provided already urlencoded. postfields = urlencode(post_data) # Sets request method to POST, # Content-Type header to application/x-www-form-urlencoded # and data to send in request body. c.setopt(c.POSTFIELDS, postfields) c.perform() c.close() ViewA的视图,并且您想要添加ViewControllerA,则可以继承ViewB

ViewB

并在@protocol ViewBDelegate - (void) viewAddedToSuperview:(ViewB*)sender; @end @interface ViewB: UIView @property (nonatomic, assign) id< ViewBDelegate > delegate; @end @implementation - (void)didMoveToSuperview { [super didMoveToSuperview]; [delegate viewAddedToSuperview:self]; } @end 中实施协议ViewControllerA

这只是我的想法的一个例子。

请在评论中告诉我它可以帮助您,否则我会尝试根据您的目标提出其他解决方案。