2015-12-22 4 views
-2

Я создал новый класс в другом файле в Swift. Второй класс - это UIViewController, в котором будет MediaPickers. Я хочу добавить этот viewController к сцене, но я не могу понять, как это сделать.Добавление UIViewController в Swift

Я попытался

MyViewController().viewDidLoad() 

и

MyViewController().viewDidLoad(YES) 

Однако, оба этих вызова методов без добавления ViewController на сцену. Любые идеи о том, как загрузить viewController?

Благодаря

import Foundation 
import UIKit 
import MediaPlayer 

class mediaViewController: UIViewController, MPMediaPickerControllerDelegate, AVAudioPlayerDelegate 
{ 
    var musicPlayer : MPMusicPlayerController? 
    var mediaPicker : MPMediaPickerController? 
    var subViewLoad : UIView? 

    override func viewDidLoad() 
    { 
    super.viewDidLoad() 

    subViewLoad?.inputView 
} 

override func viewDidAppear(animated: Bool) 
{ 
    displayMediaPickerAndPlayItem() 
} 

func displayMediaPickerAndPlayItem() 
{ 
    mediaPicker = MPMediaPickerController(mediaTypes: .AnyAudio) 

    if let picker = mediaPicker 
    { 
     print("Successfully instantiated a media picker") 
     picker.delegate = self 
     picker.allowsPickingMultipleItems = true 
     picker.showsCloudItems = true 
     picker.prompt = "Pick a song please..." 
     view.addSubview(picker.view) 

     presentViewController(picker, animated: true, completion: nil) 
    } 
    else 
    { 
     print("Could not instantiate a media picker") 
    } 
} 
} 

Я создал этот файл в быстры и добавить его в мой SpriteBuilder проекта. Главная сценарий SpriteBuilder - это CCNode. Отсюда я хочу получить UIViewController, чтобы добавить к представлению mediaPicker.

+4

НИКОГДА ВСЕГДА называть 'viewDidLoad' – luk2302

+0

Контроллер не имеет mediaPickers в нем, имеет вид. Контроллер имеет ссылки на них. Вам нужно создать экземпляр контроллера view +, используя раскадровки или загрузить его из ниба или чего-нибудь еще, но, конечно, не так, как вы сейчас это делаете. – luk2302

+0

Я только что попробовал вызвать showMediaPicker напрямую и получить предупреждение «MusicPlayer [330: 29023] Warning: попытка представить в , чей вид не находится в иерархии окон! ' –

ответ

0

Для всех, кто был заинтересован в ответе на этот вопрос, я сделал, чтобы получить rootViewController и добавить к нему UIView.

let presentedVC = UIApplication.sharedApplication().keyWindow?.rootViewController 
Смежные вопросы