如何导航回已删除的PageViewController条目/更改PageViewController条目

Appygix

情况:我想从数据条目列表导航回到我的PageViewController。

之前和之前的功能正常工作

func pageViewController(pageViewController: UIPageViewController,
                        viewControllerBeforeViewController viewController: UIViewController) -> UIViewController? {


    if ((viewController as! LocationViewController).mLocationIndex > 0){
        let storyboard = UIStoryboard(name: "Main", bundle: nil)
        let vc = storyboard.instantiateViewControllerWithIdentifier("LocationViewController") as! LocationViewController
        vc.mLocationIndex = (viewController as! LocationViewController).mLocationIndex - 1
        return vc
    }
    return nil
}

func pageViewController(pageViewController: UIPageViewController,
                        viewControllerAfterViewController viewController: UIViewController) -> UIViewController? {

    let locCount = DataManager.sharedInstance.getLocationCount()
    if ((viewController as! LocationViewController).mLocationIndex < locCount - 1){
        let storyboard = UIStoryboard(name: "Main", bundle: nil)
        let vc = storyboard.instantiateViewControllerWithIdentifier("LocationViewController") as! LocationViewController
        vc.mLocationIndex = (viewController as! LocationViewController).mLocationIndex + 1
        return vc
    }

    return nil
}

问题:如果我在viewDidLoad()中设置UIViewController(位置),则UIPageViewController可以通过按钮从UIPageViewController转到我的位置,UITableView并且我可以向后导航,并且一切正常。但是我想删除自己的位置,UITableView并且当我删除要导航的位置时(每个位置后面的dada后面CoreData),它会崩溃,因为其中的数据CoreData不见了。

我试图UIViewController在viewWillAppear(animated:Bool)中设置(位置)。现在,我可以删除条目,浏览并拥有自己的设置UIViewController(位置),但是我可以-如果我滚动到上一个视图,则viewControllerBeforeViewController返回刚才显示的“副本”,尽管返回nil ...这怎么可能?

第一个viewDidLoad()版本的代码段:

class MainPageViewController: UIPageViewController {

override func viewDidLoad() {
    super.viewDidLoad()
    dataSource = self

    let dM = DataManager.sharedInstance
    let storyboard = UIStoryboard(name: "Main", bundle: nil)
    let vc = storyboard.instantiateViewControllerWithIdentifier("LocationViewController") as! LocationViewController
    dM.mActualLocationIndex = 0

    // check if the index is too big (deleted data)
    if (dM.mActualLocationIndex < dM.getLocationCount()){
        vc.mLocationIndex = dM.mActualLocationIndex
    } else {
        vc.mLocationIndex = 0
        dM.mActualLocationIndex = 0
    }
    vc.mLocationIndex = 0
    setViewControllers([vc], direction: UIPageViewControllerNavigationDirection.Forward, animated: true, completion: nil)

}

override func viewWillAppear(animated: Bool) {

}
Appygix

我找到了解决方案:

extension UIPageViewController {
    func setViewControllerAndClearCache(vc: UIViewController){
        setViewControllers([vc], direction: .Forward, animated: true, completion: { _ in
            dispatch_async(dispatch_get_main_queue(), {
                self.setViewControllers([vc], direction: .Forward, animated: false, completion: nil)                
            })
        })
    }
}

随着setViewControllerAndClearCache(vc: UIViewController)我称之为中UIPageViewControllerviewWillAppear()我能够‘清除兑现意见’,当我导航回没有上一个视图的‘复制’更多!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何更改PageViewController的背景颜色?

来自分类Dev

如何根据PageViewController更改按钮的动作?

来自分类Dev

如何根据PageViewController更改按钮的动作?

来自分类Dev

以编程方式删除PageViewController

来自分类Dev

更改跳出背景的pageViewController

来自分类Dev

如何从Firebase删除条目

来自分类Dev

如何删除重复的条目

来自分类Dev

如何从PageViewController访问ViewController组件

来自分类Dev

Perl的getpwnam返回已删除的条目

来自分类Dev

inode 和已删除的文件条目

来自分类Dev

更改/删除表内容时删除条目

来自分类Dev

如何删除并保留最新条目

来自分类Dev

如何从文件中删除条目

来自分类Dev

如何删除证书映射条目?

来自分类Dev

如何删除“编辑此条目”?

来自分类Dev

如何删除具有相同字符串的x个条目,并仅保留一个标题已修改的条目?

来自分类Dev

Flutter:如何使用RaisedButton在PageView中导航或如何通过按钮移动pageViewController

来自分类Dev

如何在Nativescript-vue中导航回特定的组件或Backstack条目?

来自分类Dev

在onAppear中更改状态会中断PageViewController

来自分类Dev

删除所有未更改的条目(SQL)

来自分类Dev

状态更改时删除 TableView 条目

来自分类Dev

如何检查模型中已创建的条目?

来自分类Dev

如何在Windows 8.1中从导航堆栈中删除后退条目?

来自分类Dev

如何从Windows资源管理器导航窗格中删除Dropbox条目

来自分类Dev

将过滤器应用于Scala Map时,如何查看已删除的条目?

来自分类Dev

如何从Xubuntu设置管理器中恢复已删除的条目?

来自分类Dev

如何在Orchard cms数据库中检测已删除的数据条目?

来自分类Dev

将过滤器应用于Scala Map时,如何检查已删除的条目?

来自分类Dev

如何在PageViewController上调整ViewController的大小

Related 相关文章

  1. 1

    如何更改PageViewController的背景颜色?

  2. 2

    如何根据PageViewController更改按钮的动作?

  3. 3

    如何根据PageViewController更改按钮的动作?

  4. 4

    以编程方式删除PageViewController

  5. 5

    更改跳出背景的pageViewController

  6. 6

    如何从Firebase删除条目

  7. 7

    如何删除重复的条目

  8. 8

    如何从PageViewController访问ViewController组件

  9. 9

    Perl的getpwnam返回已删除的条目

  10. 10

    inode 和已删除的文件条目

  11. 11

    更改/删除表内容时删除条目

  12. 12

    如何删除并保留最新条目

  13. 13

    如何从文件中删除条目

  14. 14

    如何删除证书映射条目?

  15. 15

    如何删除“编辑此条目”?

  16. 16

    如何删除具有相同字符串的x个条目,并仅保留一个标题已修改的条目?

  17. 17

    Flutter:如何使用RaisedButton在PageView中导航或如何通过按钮移动pageViewController

  18. 18

    如何在Nativescript-vue中导航回特定的组件或Backstack条目?

  19. 19

    在onAppear中更改状态会中断PageViewController

  20. 20

    删除所有未更改的条目(SQL)

  21. 21

    状态更改时删除 TableView 条目

  22. 22

    如何检查模型中已创建的条目?

  23. 23

    如何在Windows 8.1中从导航堆栈中删除后退条目?

  24. 24

    如何从Windows资源管理器导航窗格中删除Dropbox条目

  25. 25

    将过滤器应用于Scala Map时,如何查看已删除的条目?

  26. 26

    如何从Xubuntu设置管理器中恢复已删除的条目?

  27. 27

    如何在Orchard cms数据库中检测已删除的数据条目?

  28. 28

    将过滤器应用于Scala Map时,如何检查已删除的条目?

  29. 29

    如何在PageViewController上调整ViewController的大小

热门标签

归档