- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
I have a tableview displaying on a main view controller, and when a row is selected a detail view controller is pushed.我有一个主视图 Controller 的大标题,以及详细 View Controller 的一个小/常规标题。它们嵌入在导航 Controller 和标签栏 Controller 中。
Before selecting a row, the main view controller title is large, and when a row is selected the detail view controller title is regular as it should be.但是,当我从详细 View Controller (通过“后退”按钮)返回到主视图 Controller 时,主视图 Controller 上的标题不再大。
我在主视图 Controller 上将“prefersLargeTitles”设置为 true,在详细 View Controller 上将“largeTitleDisplayMode”设置为 never。
我曾尝试在主视图 Controller 上始终将“largeTitleDisplayMode”设置为无济于事。我也试过在任一 View Controller 上将其设置为自动,但似乎没有效果。
我也尝试过使用“viewWillAppear”和“viewWillDisappear”并在其中设置标题,虽然它确实将主视图 Controller 标题重置为大标题,但动画滞后并且不像往常那样流畅从小标题过渡到大标题时。
此外,我对编码还很陌生,这是我在不使用 Storyboard的情况下构建的第一个应用程序,因此代码可能会一团糟。
主视图 Controller 代码:
class HomeViewController: UIViewController {
let tableView = UITableView()
override func loadView() {
super.loadView()
view.backgroundColor = .white
self.title = "Home"
// Set large title
navigationController?.navigationBar.prefersLargeTitles = true
// Make navigation bar transparent
navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
navigationController?.navigationBar.shadowImage = UIImage()
navigationController?.navigationBar.isTranslucent = true
}
extension HomeViewController: UITableViewDelegate {
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let vc = DetailViewController() as DetailViewController
if indexPath.section == 0 {
vc.detailTitle = itemsTop[indexPath.row]
} else if indexPath.section == 1 {
vc.detailTitle = itemsBottom[indexPath.row]
} else {
print("Failed to load title")
}
navigationController?.pushViewController(vc, animated: true)
tableView.deselectRow(at: indexPath, animated: true)
}
}
详细 View Controller 代码:
class DetailViewController: UIViewController {
var detailTitle: String?
override func viewDidLoad() {
super.viewDidLoad()
title = detailTitle
// Make nav bar transparent
navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
navigationController?.navigationBar.shadowImage = UIImage()
navigationController?.navigationBar.isTranslucent = true
// Prevent large title
navigationController?.navigationBar.prefersLargeTitles = false
}
}
最佳答案
try this it's working. In 'HomeViewController'
override func viewDidLoad() {
super.viewDidLoad()
navigationController?.navigationBar.prefersLargeTitles = true
}
In 'DetailViewController'
override func viewDidLoad() {
super.viewDidLoad()
self.navigationItem.largeTitleDisplayMode = .never
}
关于ios - 从 TableView 推送 View Controller 后如何保持导航栏标题较大,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57375523/
我正在通过 PHP 将 .csv 中的两行插入到表中。 我还会跟踪任何错误,如果发生错误,我不会提交事务。插入表后,我检索结果行的 ID(全部在一个事务中提交),并且 csv 的第一行对应于第二个 I
一个应用程序托管一个具有三个接口(interface)的 Web 服务,用于三个单独且独立的操作,所有这些操作都在应用程序的不同组件中实现,彼此独立,例如在不同的包等中,所以他们对彼此了解不多,只共享
我希望在单击特定表格数据单元格时同时选中单选按钮和单选按钮单击事件。我已经使用以下方法实现了这一点: $(document).ready(function() { $("td").click(
JSFiddle:https://jsfiddle.net/oyp1zxaq/ 本质上,我只是想在较大的 div 中放置四个具有定义宽度的较小 div,但我希望它们在其中间隔开。 我想知道是否有一种方
我在一个布局中有两个 View 。我将分别称它们为 View A 和 View B。 ┌──────┐ │┌─┐┌─┐│ ││A││B││ │└─┘└─┘│ └──────┘ 父布局(包括View A
我是一名优秀的程序员,十分优秀!