【问题标题】:Open new ViewController from itself从自身打开新的 ViewController
【发布时间】:2020-07-19 02:33:23
【问题描述】:

我有一个视图控制器,我在其中向用户提出多项选择题。这个想法是跳到下一个问题,所以我想对每个新问题再次调用相同的视图控制器(newsViewController),只是更改变量问题。我有一个按钮 btnNetQuestionAction。我尝试了这个解决方案,它工作正常。这是一个好方法吗?有更好的主意吗?

@IBAction func btnNetQuestionAction(_ sender: Any) {
    question = question + 1
    if question > total {
        question = total
    }
    UserDefaults.standard.set(questao,forKey: "questao")
    let storyboard = UIStoryboard(name: "Main", bundle: nil)
    let vc = storyboard.instantiateViewController(withIdentifier: "newsViewController") as UIViewController
    navigationController?.pushViewController(vc,animated: true)
} 

【问题讨论】:

    标签: swift viewcontroller


    【解决方案1】:

    并没有灵丹妙药的规则来判断它是否是一个好方法。无论如何,这是一个有效的代码,这取决于它的行为方式。

    基于当前方法,将为每个添加到导航堆栈的问题创建一个独立的视图控制器;如果您认为每个视图控制器都应该有自己的 UI 行为(例如),这是个好主意,因为它们是分开的,所以很容易维护。

    另一种选择是通过更改问题并重新加载 UI 来继续处理相同的视图控制器。同样,我不会确认这是一种更好的方法,但至少它是一种可用的方法。

    【讨论】:

    【解决方案2】:

    我认为这不是一个好主意。您将 UIViewControllers 一个一个地堆放在另一个之上。一个更简洁的解决方案是为您的 viewController 提供一个数据源。让按钮向数据源发送消息、更新数据并重新显示您的 viewController。

    【讨论】:

      猜你喜欢
      • 2019-05-04
      • 1970-01-01
      • 2017-05-25
      • 2020-09-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多