gpt4 book ai didi

uiviewcontroller - 使用 Swift,如何使用 StoryBoards 在另一个上创建一个 UIViewController

转载 作者:搜寻专家 更新时间:2023-11-01 05:31:28 25 4
gpt4 key购买 nike

我现在有一个按住按钮的 View Controller ,我想创建一个新的 View Controller 并将他的 View 添加到当前 View 上

到目前为止我是这样做的:

class ViewController : UIViewController
{
var myController: MyController = MyController.controller()

init(coder aDecoder: NSCoder!)
{
super.init(coder: aDecoder)
}

init(nibName nibNameOrNil: String!, bundle nibBundleOrNil: NSBundle!)
{
super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
}

override func viewDidLoad()
{
super.viewDidLoad()
self.view.addSubview(self.myController.view)
}

@IBAction func buttonPressed(sender : AnyObject)
{

}
}

在 MyController 中我做了一个单例(我希望我做对了)

class MyController : UIViewController
{

init(coder aDecoder: NSCoder!)
{
super.init(coder: aDecoder)
}

init(nibName nibNameOrNil: String!, bundle nibBundleOrNil: NSBundle!)
{
super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
}

class func controller() -> MyController
{
var once : dispatch_once_t = 0
var sharedInstance: MyController?

dispatch_once(&once, { sharedInstance = MyController()})

return sharedInstance!
}
}

我得到的行为是这样的,如果我不调用

self.view.addSubview(self.myController.view)

一切正常,如果我这样做了,中间的按钮不再识别触摸,就像它上面有什么东西可以拦截触摸,这里有什么问题吗?我缺少什么?

最佳答案

in MyController I did a singleton (I hope I did it right)

你做错了。这里不需要单例。如果您使用的是 Storyboard,则以下行

var myController: MyController = MyController.controller()  

可能是

var myController: MyController = self.storyboard.instantiateViewControllerWithIdentifier("MyViewController")

然后在添加 subview 之前设置 self.myController.view 的框架

self.myController.view.frame = CGRectMake(0, 0, 320, 200); // or what ever frame you want

关于uiviewcontroller - 使用 Swift,如何使用 StoryBoards 在另一个上创建一个 UIViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24241888/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com