【问题标题】:Master/Detail - clear detail if object deleted or no objects left in Master (iOS)Master/Detail - 如果对象被删除或没有对象留在 Master (iOS) 中,则清除详细信息
【发布时间】:2015-11-12 04:31:57
【问题描述】:

在我的 iPad 应用程序(或 iPhone 6 Plus 横向)中,我使用的是主/详细 UISplitViewController。当用户从 Master 中删除当前选中的 item 或从 Master 中删除所有 item 时,之前选中 item 的详细信息仍保留在 Detail 视图中。

如果他们删除当前选定的项目或数据源中的最后一个项目(这可能不是必需的),我需要做些什么来确保详细信息视图被清除回其空的默认状态?

有没有办法通过 UITableView/DataSource 魔术自动发生这种情况?

(如果可能,请使用 Swift,但 Objective-C 也可以。)

【问题讨论】:

    标签: ios swift uitableview datasource uisplitviewcontroller


    【解决方案1】:

    在主视图中存储项目属性。

    var currentPresentingItem : <yourItemClass>?
    

    currentPresentingItem 仅在详细视图呈现时才不为零。因此,在普通 iphone 中,当currentPresentingItem 不为零时,人们将永远没有机会删除 masterView 中的项目

    func segueToDefaultDetailViewIfPresentingItemDeleted(deletingItem : <yourItemClass>){
         if currentPresentingItem == deletingItem{
              // segue to your default detail view, 
              // this will never happen in normal iphone
         }
    }
    

    【讨论】:

    • 这很好用。请注意,我在获取的结果控制器中调用了 func 控制器的 .Delete 部分(控制器:NSFetchedResultsController,didChangeObject anObject:AnyObject,atIndexPath indexPath:NSIndexPath?,forChangeType 类型:NSFetchedResultsChangeType,newIndexPath:NSIndexPath?)委托。
    • @Kent Lol,我不知道你用的是CoreData,我改一下函数名确定一下
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-03
    • 2017-11-24
    • 2021-09-08
    • 1970-01-01
    • 1970-01-01
    • 2015-04-08
    相关资源
    最近更新 更多