预加载viewcontroller以获取barbutton项的位置

时间:2017-11-29 09:10:53

标签: ios uiviewcontroller

我有viewController A 它将呈现viewController B. 我将通过viewController B(教程停留)将viewController C分层 为了让我将vc C上的箭头图像指向vc B上的元素,我需要知道该元素的位置。

当我尝试将vc C放在B上以准备从vc A到vc B的动画时,vc B尚未布局,因为它尚未呈现。因此,vc C无法正确地将其箭头图像指向vc B上的元素。

view.setNeedsLayout()和view.layoutIfNeeded()不起作用,因为它只触发viewDidLoad和viewDidLayout子视图而不是viewDidAppear。我已经对此进行了测试,并且在调用它们后,我想要指向的元素(条形按钮项目)仍然没有布局。

有没有办法在呈现之前在后台完全布局视图控件?我相信这可以解决我的问题。

更新

我想强制绘制/布局视图控制器

可能是tbVC.view.setNeedsLayout()tbVC.view.layoutIfNeeded()

然后我想要一个完成块告诉我何时完成。 然后我想执行一些代码来访问完成块中的绘制元素(uibuttonbaritem)。 我希望所有这些都能在后台完成而不需要显示视图控制器。

干杯!

1 个答案:

答案 0 :(得分:0)

要解决此问题,您需要 ViewController C作为ViewController B的子视图,您需要从ViewContrller A调用ViewController B

self.view.addSubView(vcC.view) //instead of vcB use your ViewControler C instance

希望这会对你有所帮助