Я создал новый класс в другом файле в 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.
НИКОГДА ВСЕГДА называть 'viewDidLoad' – luk2302
Контроллер не имеет mediaPickers в нем, имеет вид. Контроллер имеет ссылки на них. Вам нужно создать экземпляр контроллера view +, используя раскадровки или загрузить его из ниба или чего-нибудь еще, но, конечно, не так, как вы сейчас это делаете. – luk2302
Я только что попробовал вызвать showMediaPicker напрямую и получить предупреждение «MusicPlayer [330: 29023] Warning: попытка представить в , чей вид не находится в иерархии окон! ' –