我有两个班级:
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(所有更改都完好无损)。
答案 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 )?了解如何在视图之间切换。
在引用新视图后传递数据,您可以将数据分配给该视图的属性。