如何避免调用ViewDidload()以刷新视图



我正在使用滑动手势来改变主视的外观:

@IBAction func changeSeqBack(_ recognizer: UISwipeGestureRecognizer) {
        if (recognizer.direction == UISwipeGestureRecognizerDirection.right) {
            count = 0
            if timerIndex % 5 == 0 {
                timerIndex -= 5
                initialState -= 1
                viewDidLoad()
            } else {
                while timerIndex % 5 != 0 {
                    timerIndex -= 1
                    if timerIndex % 5 == 0 {
                        count = 0
                        initialState -= 0
                        viewDidLoad()
                    } 
                }
            }
        }
    } 

initialState变量,随着滑动更改,调用了许多方法,这些方法隐藏或在屏幕上显示各种对象。问题是我只能使更改出现是在每次滑动后调用ViewDidload()。这似乎是不良的习惯,因为它加载了内存。还有其他方法可以使其在内存上简化吗?

为初始设置创建一个新功能,然后将代码在viewDidload()中移动到此功能,并从viewdidload()和刷新函数中调用相同的功能:

override viewDidLoad(){
    super.viewDidLoad()
    testFunction()
}
func testFunction() {
    // write your code here
}

if (recognizer.direction == UISwipeGestureRecognizerDirection.right) {
            count = 0
            if timerIndex % 5 == 0 {
                timerIndex -= 5
                initialState -= 1
                testFunction()
            } else {
                while timerIndex % 5 != 0 {
                    timerIndex -= 1
                    if timerIndex % 5 == 0 {
                        count = 0
                        initialState -= 0
                        testFunction()
                    } 
                }
            }
        }

最新更新