2016-08-23 83 views
0

我有一个SplitView,带有iPad应用程序的主(左)和细节(右)视图。我想要的是,当我点击主视图中的一个按钮时,这将调用父视图的委托方法,并将新视图顶部顶部,但委托方法从不调用。为什么?代表不能使用SplitView

下面的代码:

母版视图:

protocol newAlbumDelegate{ 
    func openAlbum() 
} 
class newAlbumController: UIViewController { 
    var delegate:newAlbumDelegate? 

    @IBAction func buttonClick(sender:UIButton){ 
     delegate?.openAlbum() 
    } 
} 

SPLITVIEW

import UIKit 

class AlbumSplitController: UISplitViewController, newAlbunDelegate { 

    var newAlbumToAdd:newAlbumController = newAlbumController() 

    //Delegate 
    func openAlbum(){ 
     print("Do something") 
    } 

    override func viewDidLoad(){ 
     super.viewDidLoad() 
     self.newAlbumToAdd.delegate = self 
    } 

任何帮助?

问候,

+0

我认为错误是,我创建一个新的主视图,但我需要获得它为SplitView创建的主视图? – amelian

+0

为了便于阅读,您可能需要更正此问题中的拼写错误:splitView中的“newAlbunDelegate” – Shades

回答

0

masterViewController,分配splitViewController作为代表:

protocol newAlbumDelegate{ 
    func openAlbum() 
} 
class newAlbumController: UIViewController { 
    var delegate:newAlbumDelegate? 

    @IBAction func buttonClick(sender:UIButton){ 
     delegate?.openAlbum() 
    } 

    override func viewDidLoad(){ 
     super.viewDidLoad() 
     let splitView = self.splitViewController as! AlbumSplitController 
     self.delegate = splitView 
    } 
} 

splitViewController变为:

class AlbumSplitController: UISplitViewController, newAlbumDelegate { 

    //Delegate 
    func openAlbum(){ 
     print("Do something") 
    } 
}