gpt4 book ai didi

ios - UITableView、uisplitviewcontroller - 一种管理细节 View 的方法?

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

我正在尝试让我的“菜单”系统像在 ObjC 中那样快速工作。

到目前为止我构建了这个

这是在我的 detailViewContainerController

var initial : UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
var foesteTid : UIStoryboard = UIStoryboard(name: "FoersteTid", bundle: nil)

var vc0:UIViewController = UIViewController()
var vc1:UIViewController = UIViewController()
var vc2:UIViewController = UIViewController()
var vc3:UIViewController = UIViewController()
var topController: UIViewController = UIViewController()

override func viewDidLoad() {
super.viewDidLoad()

self.configureView()

self.vc0 = initial.instantiateViewControllerWithIdentifier("initial") as DetailViewController!
self.addChildViewController(self.vc0)
self.vc1 = initial.instantiateViewControllerWithIdentifier("startSide") as DetailViewController!
self.addChildViewController(self.vc1)

self.vc2 = foesteTid.instantiateViewControllerWithIdentifier("udstyr") as DetailViewController!
self.addChildViewController(self.vc2)

}

func initialSite(viewID: Int) -> () {
var viewController: UIViewController?
let dataValue: AnyObject? = data?.valueForKey("navn")
var start: String?

switch viewID {
case 0:
viewController = self.vc0
start = "Velkommen til \(dataValue)'s Bog"
println("data fra detailViewContainerController dataValue \(dataValue)")
case 1:
viewController = self.vc1
start = "\(dataValue)'s Bog, start-side"
println("data fra detailViewContainerController dataValue2 \(dataValue)")
default:
break;
}

self.navigationItem.title = start!
self.showChildViewController(viewController!)
}

这是我认为我的问题所在,因为屏幕上没有任何内容,每当我在 UITableView

中选择一个项目时
func showChildViewController(content: UIViewController){
if(topController != content) {
content.view.frame = self.view.frame
content.view.autoresizingMask = UIViewAutoresizing.FlexibleWidth
content.view.removeFromSuperview()
self.view.addSubview(content.view)
content.view.autoresizesSubviews = true
content.didMoveToParentViewController(self)

topController = content;
}
}

在我的 hovedMenu UITableview 中我有这个

var dvcc = detailViewContainerController()
var data: AnyObject?
func tableView(tableView: UITableView!, didSelectRowAtIndexPath indexPath: NSIndexPath!) {
println("You selected cell #\(indexPath.row)!")

if let row = indexPath?.row {

dvcc.data = data
self.dvcc.initialSite(Int())

}

}

这是它在 iPad 模拟器中的样子!

Main Menu + detail view after selection of the main item on the uitableview from the main menu当几乎相同的代码时我让它在 ObjC 中运行......所以我不明白为什么它不起作用

最佳答案

几天前我试图做类似的事情,并设法使用 XCode 6 的主子模板,然后使用 segues,然后从 tableView 的 didSelectRowAtIndexPath 方法调用 performSegueWithIdentifier 来做到这一点。请查看我的blog post关于它,它也包含指向代码的链接。可能对您有所帮助。

但是我看到您正在尝试以编程方式完成所有事情,而不是依赖 Storyboard 和 Segues。这背后有什么原因吗?您的代码看起来不是至少使用最新的 iOS8 SDK 做事的标准方式。我相信如果您在 Storyboard 中创建 View Controller 并适本地设置 Segues,您应该能够轻松实现您想要的。

可以查看我的 blog-post和代码,看看它是否对你有用?如果您不理解代码的任何部分,请告诉我。

关于ios - UITableView、uisplitviewcontroller - 一种管理细节 View 的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26034507/

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