您当前的位置: 首页 >  eureka

Eureka按需定制PushRow跳转控制器视图

发布时间:2018-06-14 09:00:39 ,浏览量:0

大家知道Eureka中有各种功能的Row,其中PushRow在转场显示整个独立视图内容的时候尤为有用。

比如,我们希望点击选项PushRow后跳转至显示全部选项的VC中去。

PushRow(){row in row.title = "查看全部记录" row.options = habit.allRecords row.value = nil
    row.selectorTitle = "全部执行记录" }.onPresent {from,to in to.dismissOnSelection = false
    to.dismissOnChange = false
    //设置toVC的Section头部内容为空
    to.form.allSections[0].header?.title = "" }

但是有时我们又不希望用户可以选择某个选项,即“只能看,不能选”

我们可以简单粗暴的在onPresent块中加上一句:

to.view.isUserInteractionEnabled = false

就可以了。但是当显示内容太多需要滚动时,你会发现这时连滚动也不可以了…

所以把上面那句先注释掉,然后加上这一句:

to.tableView.allowsSelection = false

运行App并没有带来期待的效果,用户在点击PushRow时crash掉了,提示:

to.tableView为nil

为毛tableView会是nil呢?没太搞明白…貌似必须先对view进行一下访问(这样顺面把它的子View,tableView加载进来了),才可以正常访问tableView.

这不影响我们的目的,我们取消上面的注释的那句,只不过把它改为true就好了,现在完整的代码如下:

<<< PushRow(){row in row.title = "查看全部记录" row.options = habit.allRecords row.value = nil
    row.selectorTitle = "全部执行记录" }.onPresent {from,to in to.dismissOnSelection = false
    to.dismissOnChange = false

    to.view.isUserInteractionEnabled = true
    to.tableView.allowsSelection = false

    to.form.allSections[0].header?.title = "" }

运行App,完美达到了我们的效果:

这里写图片描述

关注
打赏
1688896170
查看更多评论

暂无认证

  • 0浏览

    0关注

    107766博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.0472s