V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
touzi
V2EX  ›  Swift

Swift 写 iOS 时用 presentViewController 转场传递参数问题

  •  
  •   touzi · 2016-01-05 20:40:09 +08:00 · 4540 次点击
    这是一个创建于 3005 天前的主题,其中的信息可能已经有所发展或是发生改变。
    1. iOS 初学者,用的是 Swift 语言
    2. 今天在写一个登录成功后跳转到下一个 UITableViewController
    3. UITableViewController 带有一个 UINavigationBar
    4. 问题来了:我用 presentViewController 方法跳转到 UINavigationBar,这时不能将值传递给 UITableViewController

    网上没有找到特别好用的(如协议)

    现在想问一下,大家如何解决这种问题

    7 条回复    2016-01-06 12:21:45 +08:00
    targz
        1
    targz  
       2016-01-05 22:08:55 +08:00
    首先,你要知道如何传值。 OC 和 swift 只是语法不同,写法不同罢了。去想一想如何传值
    touzi
        2
    touzi  
    OP
       2016-01-06 09:20:46 +08:00
    @targz 真心不知道, oc 也没有用过。麻烦告诉一下。
    lukic
        3
    lukic  
       2016-01-06 09:45:13 +08:00
    查一下 segue
    iAugus
        4
    iAugus  
       2016-01-06 11:09:05 +08:00
    你的意思是 TableViewController 前面还有一个 UINavigationController 是吧?可以 Segue 传值: https://gist.github.com/iAugux/80202c13201d5a0fcbc2

    也可以用 KVC 或者协议传值
    touzi
        5
    touzi  
    OP
       2016-01-06 11:18:11 +08:00
    @iAugus segue 传值时,绑定 button,那么只要点击就会被触发,并且跳转.即使我通过 segue.identifier 前面加一个判断,也无效,依旧跳转,不会因为条件不足而停止跳转.
    touzi
        6
    touzi  
    OP
       2016-01-06 11:19:10 +08:00
    @iAugus KVC 不了解,协议看用了,但很繁琐,所以寻找更好的解决方法.
    iAugus
        7
    iAugus  
       2016-01-06 12:21:45 +08:00
    @touzi 你看一下`prepareForSegue`的定义也知道你的判断肯定不会影响它的跳转啊。
    写了一个简单的 Demo : https://www.dropbox.com/s/ba6841csjynlyvw/Test.zip?dl=0
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5743 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 01:53 · PVG 09:53 · LAX 18:53 · JFK 21:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.