是否有一个常见的模式来更改导航栏内容而不更改UITableView内容,滚动位置,其他元素等?
我有一个带标题和按钮的导航栏。按下此按钮,我希望栏显示一个文本框而不是标题,另一个按钮显示另一个动作。点击外面的文本栏或按钮segue展开。
显而易见的方法是将segue推送到另一个没有动画的场景,重新实现相同的UITableView内容和位置,但我觉得效率很低。
另一种方法是尝试在同一场景中进行。我试图在标题的导航栏上放置文本框。在这种情况下,文本框会替换导航栏的标签,即使文本框被隐藏也不会显示。
iOS 8-9 + Swift 谢谢!
答案 0 :(得分:0)
您可以将控制器导航项的标题视图设置为所需的视图
override func viewDidLoad()
{
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
let titleView : UIView = UIView(frame: CGRectMake(0.0, 0.0, 40.0, 64.0))
let titleLabel : UILabel = UILabel (frame: CGRectMake(0.0, 0.0, 40.0, 34.0))
titleLabel.text = "title"
let button : UIButton = UIButton(frame: CGRectMake(0.0, 44.0, 40.0, 20.0))
titleView.addSubview(titleLabel)
titleView .addSubview(button)
self.navigationItem.titleView = titleView
}