当呈现UINavigationController时调用什么方法?

时间:2015-06-13 16:38:58

标签: ios uinavigationcontroller

我正在尝试将UINavigationController子类化为在其UINavigationBar下添加自定义子视图。问题是当我将自定义UINavigationController设置为rootViewController的{​​{1}}时,window位置发生了更改,因此我想相应地更新自定义视图的位置。我的问题是我应该在哪里放置代码来更新自定义视图。

UINavigationBar

2 个答案:

答案 0 :(得分:0)

您要做的是响应导航控制器视图的子视图的位置。子视图的定位称为 layout ,并在layoutSubviews中进行。因此,您可以尝试实施viewDidLayoutSubviewslayoutSubviews之后立即调用if ($_POST['action'] == 'getentity') { $value= $entity; $content .= '<div>'.$value.' hello</div>'; } <form method="post" action="?"> <input type="text" name="TownID_display" size="50" onkeyup="javascript:ajax_showOptions(this,\'getEntitiesByLetters\',event)"> <input type="text" name="TownID" id="TownID_display_hidden" value="'.$entity.'" /> <input type="hidden" name="action" value="getentity" /> <input type="submit" name="submit" value="Find"/> 。请注意,它可以多次调用,但您可能只想添加一次子视图,因此请务必添加适当的警卫。

答案 1 :(得分:0)

您可以强制ViewController的“视图”在UINavigationBar下面扩展。这里有一些代码可以帮助你,它不是Swift,它是ObjC,但你会明白这一点。这是我自己实现的UIVeiwController子类。我还有UINavigationController和UINavigationBar的完整实现来调整UINavigationBar的点大小。我可以告诉你,你可以按照我在这里链接的代码来完成Apple在他们的例子中所做的事情。

[[[self navigationController] navigationBar] setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault];
[[[self navigationController] navigationBar] setShadowImage:[UIImage new]];
[[[self navigationController] navigationBar] setTranslucent:TRUE];
[[[[self navigationController] navigationBar] layer] setShadowOpacity:0.0f];
[[[[self navigationController] navigationBar] layer] setShadowOffset:CGSizeMake(0.0f, 0.0f)];