【问题标题】:Segue from and to the same UITableViewController (navigation) - controller reusable?从同一个 UITableViewController(导航)到同一个 UITableViewController(导航)- 控制器可重用?
【发布时间】:2017-01-04 07:19:24
【问题描述】:

我是 iOS 开发新手,想知道如何完成以下任务:

我希望用户在多级菜单中导航。我有 UITableViewController 有两种不同类型的单元格。 当单击第一个单元格类型时,我想用不同的数据重新加载 UITableViewController。 (单击另一个单元格会执行其他操作。)

我是否必须在 StoryBoard 中设置一个不同的 UITableViewController,或者我可以重复使用现有的 UITableViewController 并从同一个 UITableViewController 切换到同一个?我不知道我最终会有多少级别,因为数据来自远程源。我可以有两个不同的 UITableViewControllers(因为有一个不同的按钮),但我更愿意将这一切合二为一(并在需要时尝试隐藏和显示按钮)。

无论如何,我需要重用同一个类,但要更改每个实例的数据。我怎样才能做到这一点?我还需要在返回时恢复控制器的旧状态(上次使用的数据) - 或者这是否会自动发生 - 无论如何它是“放松”吗?

我应该重写哪些方法来委派新数据?

我尝试了几个教程,但仍找不到所需的信息。

提前致谢

【问题讨论】:

  • 到目前为止我学到的是我可以用“let controller = self.storyboard!.instantiateViewControllerWithIdentifier("Storyboard-ID‌​")”实例化新的视图控制器,我不需要使用segues 但我可以将新的视图控制器推送和弹出到导航堆栈。我可以使用 didSelectRowAtIndexPath 方法代替 segues。
  • 那么负点是什么?不欢迎初学者的问题吗?

标签: swift uitableview storyboard uistoryboardsegue


【解决方案1】:

阅读Nav Controllers,我很确定这就是你会使用的。

将 UITableViewDelegate 添加到您的 ViewController 按下命令并单击它以获取更多信息。

【讨论】:

  • 谢谢,这对我帮助很大!
【解决方案2】:

您总是可以只使用一个简单的变量来跟踪。

声明一个变量var step = 0

然后在你的

override func prepareForSegue(){

    step += 1 //and pass that variable to the next view and so one, incrementing by one each time.

}

然后在你的

viewDidLoad(){
   switch step{
   case 0:
       //add this data
   case 1:
       //add this data
   case 2:
       //add this data
   default: break
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-12
    • 1970-01-01
    • 2020-10-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多