Xcode 7.0ベータ6でSwift 2を使用しています
簡単に言えば、 iCloud にアクセスするためにドキュメント ピッカーを使用する方法.navigationBar.barStyle
と設定方法を理解しようとして います。navigationBar.tintColor
UIDocumentPickerViewController
私は例えば試しました:
/...
documentPicker.navigationController!.navigationBar.barStyle = UIBarStyle.Default
documentPicker.navigationController!.navigationBar.tintColor = UIColor.orangeColor()
/...
例えば。ここでは、ナビゲーション コントローラー内にビュー コントローラーが埋め込まれています。
で、次MyNavigationController
のように設定できます。.barStyle
.tintStyle
class MyNavigationController: UINavigationController {
override func viewDidLoad() {
super.viewDidLoad()
self.navigationBar.barStyle = UIBarStyle.Default
self.navigationBar.tintColor = UIColor.orangeColor()
}
}
オレンジ.tintStyle
色も次のとおりです。
iCloudが有効で、にFirstViewController
準拠していUIDocumentPickerDelegate
ます。バー ボタンは、次IBAction
のコードのように関数を呼び出しFirstViewController
ます。
class FirstViewController: UIViewController, UIDocumentPickerDelegate {
// ...
@IBAction func importDocument(sender: UIBarButtonItem) {
let documentPicker: UIDocumentPickerViewController = UIDocumentPickerViewController(documentTypes: ["public.text"], inMode: UIDocumentPickerMode.Import)
documentPicker.delegate = self
documentPicker.modalPresentationStyle = UIModalPresentationStyle.FullScreen
documentPicker.popoverPresentationController?.barButtonItem = sender
self.presentViewController(documentPicker, animated: true, completion: nil)
}
func documentPicker(controller: UIDocumentPickerViewController, didPickDocumentAtURL url: NSURL) {
// ...
}
func documentPickerWasCancelled(controller: UIDocumentPickerViewController) {
// ...
}
}
それはうまくいきます。ドキュメント ピッカーは期待どおりにロードされます。
しかし。これを行う方法を理解するために、メニュー項目「完了」をオレンジ色にしたいと思います。前のように。
次のコードを次のように追加しようとしました@IBAction
。
//...
documentPicker.navigationController!.navigationBar.barStyle = UIBarStyle.Default
documentPicker.navigationController!.navigationBar.tintColor = UIColor.orangeColor()
self.presentViewController(documentPicker, animated: true, completion: nil)
//...
この時点documentPicker.navigationController
でnil
.
サイクルのどこでどのようにアクセスできるか教えてもらえますdocumentPicker.navigationController!.navigationBar.tintColor
か?
または、何かが足りないので、メニューの色を変更する他の方法がありますか?
または、カスタム ナビゲーション コントローラーとカスタム ドキュメント ピッカー ビュー コントローラーの作成を検討する必要があるかもしれません。その後、理論的には、関連する にアクセスできますviewDidLoad
。私はそれを試みましたが、UIDocumentPickerDelegate
プロトコルのカスタムバージョンも必要になることに気付きました. もっと簡単な解決策があるに違いありません (そして、それが許されるかどうか疑問に思っていました)。