在swift

时间:2016-08-21 13:40:50

标签: ios swift uiviewcontroller segue

我有两个班级:

class ExplorerViewController: UIViewController {

    lazy var studyButton: ExploreButton = {
        let button = ExploreButton()
        button.setTitle("Study", forState: .Normal)
        return button
    }()

}

class ViewController: UIViewController, UISearchBarDelegate, LocateOnTheMap, GMSMapViewDelegate {

}

我正在尝试这样做,以便当我单击studyButton时,它会将按钮标题发送到ViewController并转到该视图。

我没有使用故事板,而且我遇到了segue的问题,因为每个教程似乎都提供了不同的例子,这些例子特定于他们一直在使用的东西,其中95%似乎是在使用故事板。有人能给我一个如何做到这一点的一般方法吗?

如何为起始视图控制器提供一个标识符,因为它没有像我之后“移动”的其他控制器那样实例化。如何从ViewController移动到ExplorerViewController,然后移回到相同的ViewController(所有更改都完好无损)。

4 个答案:

答案 0 :(得分:0)

为ViewController创建一个初始化程序,接收"标题"变量:

class ViewController: UIViewController, UISearchBarDelegate, LocateOnTheMap, GMSMapViewDelegate {
    var btnTitle: String?

    init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: NSBundle?, btnTitle:String?) {
        super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
        self.btnTitle = btnTitle
    }
}

创建ViewController对象时,请使用此初始值设定项。

var viewController = ViewController(nibName: "ViewController", bundle: nil, btnTitle: title

答案 1 :(得分:0)

您可以初始化要导航到的UIViewController,将数据分配给该控制器中的属性并调用此方法:

presentViewController(viewController, animated: true, completion: nil)

例如:

let destinationViewController = ViewController()
destinationViewController.frame = self.view.frame
destinationViewController.buttonTitle = "title"
self.presentViewController(destinationViewController, animated: true, completion: nil)

虽然我建议您熟悉故事板并使用Segues执行导航。

答案 2 :(得分:0)

确保两件事: -

1。)您已向viewController提供了 StoryBoard ID ,请在其中提及{{1>} 身份检查员

2。)您已"viewControllerVC_ID"嵌入初始入口点View Controller

NavigationController中声明变量

ViewController

var btnLabelTxt : String! 中创建该按钮的@IBAction: -

ExplorerViewController

答案 3 :(得分:-3)

请参阅此问题How to push viewcontroller ( view controller )?了解如何在视图之间切换。

在引用新视图后传递数据,您可以将数据分配给该视图的属性。