在 popViewController 之后 ContentInset 自动改变

Posted

技术标签:

【中文标题】在 popViewController 之后 ContentInset 自动改变【英文标题】:ContentInset automatically changed after popViewController 【发布时间】:2017-03-20 14:37:28 【问题描述】:

我有 2 个视图控制器

itemViewController

chatViewController

我点击了右边的 barButton 来显示 chatViewController

之后

我点击了返回按钮返回到 itemViewController

它工作正常....除了一个问题。

当我回到 itemViewController...然后它自动改变了 tableView 的 contentInset

itemViewController sn-p 代码在这里

在 viewDidLoad 函数中

 tableView.rowHeight = UITableViewAutomaticDimension
        tableView.estimatedRowHeight = 450

        tableView?.contentInset = UIEdgeInsetsMake(22, 0, 0, 0)

我设置了 contentInset 因为我的应用有自定义导航栏高度,它大于默认导航栏高度。

func chat(_ sender: UITabBarItem)

        var chattingObjId = String()


    //STEP 1. is Created Chatting Room?
    PFCloud.callFunction(inBackground: "getChattingObjId", withParameters:
        ["postId":results.objectId, "from":PFUser.current()?.username!], block:  (response: Any?, error:Error?) in

            // some your code
            if error == nil 

                chattingObjId = response as! String
                print("\(chattingObjId) : Received from Server")

                let chatting = self.storyboard?.instantiateViewController(withIdentifier: "ChattingVC") as! ChattingVC

                chatting.chattingObjId = chattingObjId


                self.navigationController?.isNavigationBarHidden = false
                self.navigationController?.pushViewController(chatting, animated: true)


            else 
                print(error?.localizedDescription as Any)
            


    )


chatViewController 的 sn-p 代码如下

func back(_ sender: UITabBarItem)

    //push back
    _ = navigationController?.popViewController(animated: true)




点击返回按钮后...

有差距...似乎是... 22pt 这是我设置的 viewDidLoad..

为什么会这样?

这是我对 itemViewController 的设置。

【问题讨论】:

【参考方案1】:

我遇到了几乎相同的问题,通过取消选中“调整滚动视图插图”来解决。试试吧,也许它也适合你。

【讨论】:

以上是关于在 popViewController 之后 ContentInset 自动改变的主要内容,如果未能解决你的问题,请参考以下文章

在 popViewController Animated() 之后缺少堆栈中的第一个 ViewController

PopViewController 正在占用内存

调用 popViewController 时是不是可以跳过几个控制器并到达根视图控制器?

默认 popViewController 过渡意外淡出

Swift - 解雇后的popViewController

dismissModalViewController 然后是 popViewController