ios - 使用标签栏从另一个 View 返回时如何重新加载 View Controller

标签 ios swift uiviewcontroller uitabbarcontroller loadview

我有一个用户打开应用程序 (VC1) 时使用的通用 View 。使用选项卡栏 Controller ,我加载了另一个 View (VC2),可用于更新前一个 View 中可见的数据。当我返回 VC1(堆栈)时,它不会重新加载更新的数据。

我试过像这样在 viewWillAppear 中调用 viewDidLoad...

override func viewWillAppear(_ animated: Bool) {
    viewDidLoad()
}

它可以工作,但它会加载仍在堆栈上的 VC1,并且用户可以看到更改(不好)。

我想关闭 VC1 会有所帮助,但我还没有找到如何在使用标签栏 Controller 时关闭 View 。

最佳答案

每次您的 View 出现时,请按照以下步骤处理您的 View 加载设置:
(VC1 = 第一个 View Controller )

  • 在您的 VC1 中创建一个新的函数/方法(名为 viewLoadSetup)并将所有代码从 viewDidLoad() 移动到 viewLoadSetup()
  • 现在,从 viewWillAppear

    调用 viewLoadSetup()
    class VC1: UIViewController {
    
        override func viewDidLoad() {
           super.viewDidLoad()
           // viewLoadSetup()  you may call it from view did load also
        }
    
        override func viewWillAppear(_ animated: Bool) {
           super.viewWillAppear(animated)
           viewLoadSetup()
    
        }
    
    
         func viewLoadSetup(){
          // setup view did load here
         }
    
    
    }
    


如果你想从 viewDidLoad 调用 viewLoadSetup 一次,当你的 View Controller 加载时,然后在每次从你的 viewWillAppear 调用之后,

class VC1: UIViewController {

    var isLoadingViewController = false

    override func viewDidLoad() {
        super.viewDidLoad()
        isLoadingViewController = true
        viewLoadSetup()
    }

    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)

        if isLoadingViewController {
            isLoadingViewController = false
        } else {
            viewLoadSetup()
         }
    }


    func viewLoadSetup(){
      // setup view did load here
    }


}

关于ios - 使用标签栏从另一个 View 返回时如何重新加载 View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46577217/

相关文章:

ios - iPhone X 上的 UITableViewCell ImageView 太大

ios - obj-c 和 swift 中相同的 HMAC 算法创建不同的哈希值

iphone - Core Data 从其 objectID 取回子类 NSManagedObject

ios - 当我在 xcode 上从 iPad 切换到 iPhone "view as"时,一个场景看起来仍然像 iPad

ios - 如何使用自动布局约束调整嵌入式 UIViewController 的大小和位置?

ios - ARC下__weak UIViewController subview 创建简明代码

ios - 在 iOS 中下载文件

swift - 使用 NSTask 运行多个终端命令

ios - dismissViewControllerAnimated 不为 ViewController 设置动画

ios - 如何使用转场