简体   繁体   English

UITableView,uisplitviewcontroller-一种管理detailview的方法?

[英]UITableView, uisplitviewcontroller - a way to manage detailview?

i'm trying to make my "menu" system work in swift as i had in ObjC. 我正在尝试使我的“菜单”系统像在ObjC中一样迅速运行。

so far i constructed this 到目前为止,我建造了这个

this is in my detailViewContainerController 这是在我的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!)
}

This is where i think my problem is, as there's nothing on the screen, when ever i select a item in the UITableView 我认为这是我的问题所在,因为屏幕上什么都没有,所以我UITableViewUITableView选择一个项目时

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;
    }
}

in my hovedMenu UITableview I have this 在我的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())

    }

}

This is what it looks like in the iPad simulator! 这就是iPad模拟器中的样子!

主菜单+详细视图从主菜单在uitable视图上选择主要项目后 i had it running in ObjC when almost same code... so i dont understand why it's not working 我在几乎相同的代码下在ObjC中运行它...所以我不明白为什么它不起作用

I was trying to do something similar a few days back and have managed to do it using Master Child Template of XCode 6 and then using segues and then calling performSegueWithIdentifier from tableView's didSelectRowAtIndexPath method. 几天前,我试图做类似的事情,并设法使用XCode 6的主子模板,然后使用segues,然后从tableView的didSelectRowAtIndexPath方法中调用performSegueWithIdentifier。 Please check my blog post about it, it contains link to the code as well. 请检查我有关它的博客文章 ,其中也包含该代码的链接。 May be it will be of help to you. 可能会对您有帮助。

However I see that you are trying to do everything programmatically rather than relying on Storyboard and Segues. 但是,我看到您正在尝试以编程方式完成所有操作,而不是依靠Storyboard和Segues。 Is there any reason behind it? 背后有什么原因吗? Your code doesn't look standard way to do things atleast with latest iOS8 SDK. 您的代码看起来并不是使用最新的iOS8 SDK进行处理的标准方法。 I am sure if you create viewcontrollers in Storyboard and setup Segues appropriately, you should be able to easily achieve what you want. 我相信,如果您在情节提要中创建视图控制器并适当设置Segues,则应该能够轻松实现所需的功能。

May be checkout my blog-post and code and see if it's of any use to you? 可以查看我的博客文章和代码,看看对您有没有用? Let me know if you don't understand any part of the code. 如果您不理解代码的任何部分,请告诉我。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM