【问题标题】:Pass data to rear view using SWrevealviewcontroller使用 SWrevealviewcontroller 将数据传递到后视图
【发布时间】:2016-07-24 14:26:37
【问题描述】:

我需要使用 SWRevealViewController 将前置 ViewController 传递给后置 ViewController,但我完全不知道该怎么做。

后视图中的变量如下所示:

var mainView : ViewController!

有什么建议如何将它传递到前端 ViewController 中?

【问题讨论】:

  • 信息不足。什么类推动这些视图控制器?用户如何来回导航?为什么要将视图控制器传递给另一个视图控制器,而不是只发送一些特定的数据?
  • 主视图控制器中的主要数据是一个数组,我需要一个引用,而不是这个数组的副本,所以我正在传递整个视图,如果它是不好的解决方案,请告诉我如何通过引用快速传递它: ) 后视图作为侧边菜单,通过点击菜单按钮启动,这两个 ViewController 都是自定义类,主视图 - ViewController,菜单视图 - MenuViewController。

标签: ios swift segue swrevealviewcontroller


【解决方案1】:

这是个好问题。经过一番努力,我终于为你找到了出路。

在你的 viewController.swift 文件中,

import UIKit

//Add this line before your class definition
var homeController: ViewController!

class ViewController: UIViewController {
    .......

    override func viewDidLoad() {
        super.viewDidLoad()
        home = self
        .....
    }

}

在你的后视图控制器中,你可以访问前视图控制器的成员。

希望这会有所帮助:-)

【讨论】:

  • 抱歉,我对 Objective C 不太流利。
【解决方案2】:

我在 prepareForSegue 中使用它来传递适合我的数据

 if ([[segue identifier] isEqualToString:@"SWReveal"]) {

       SWRevealViewController *destination = [segue destinationViewController];
       [destination loadView];
       UINavigationController *navViewController = (UINavigationController *) [destination rearViewController];

       if ([navViewController.topViewController isKindOfClass:[MenuViewController class]]) {

          MenuViewController* menuVC = (MenuViewController*)navViewController.topViewController;
          menuVC.title = @"Menu";
        } 
    }

希望有帮助

【讨论】:

    【解决方案3】:

    SWRevealViewController 有两个属性同时引用这两个视图控制器:rearViewController 和 frontViewController。所以你应该这样做:

        class RearViewController: UIViewController {
        var mainView : ViewController!
    
        override func viewDidLoad() {
           super.viewDidLoad() 
           mainView = self.revealViewController().frontViewController
        }
    
    }
    

    【讨论】:

      猜你喜欢
      • 2016-11-11
      • 1970-01-01
      • 1970-01-01
      • 2018-03-01
      • 2016-03-28
      • 2017-11-14
      • 1970-01-01
      • 2015-07-01
      • 2016-02-26
      相关资源
      最近更新 更多