5

Xcode 7.0ベータ6でSwift 2を使用しています

簡単に言えば、 iCloud にアクセスするためにドキュメント ピッカーを使用する方法.navigationBar.barStyleと設定方法を理解しようとして います。navigationBar.tintColorUIDocumentPickerViewController

私は例えば試しました:

/...
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.navigationControllernil.

サイクルのどこでどのようにアクセスできるか教えてもらえますdocumentPicker.navigationController!.navigationBar.tintColorか?

または、何かが足りないので、メニューの色を変更する他の方法がありますか?

または、カスタム ナビゲーション コントローラーとカスタム ドキュメント ピッカー ビュー コントローラーの作成を検討する必要があるかもしれません。その後、理論的には、関連する にアクセスできますviewDidLoad。私はそれを試みましたが、UIDocumentPickerDelegateプロトコルのカスタムバージョンも必要になることに気付きました. もっと簡単な解決策があるに違いありません (そして、それが許されるかどうか疑問に思っていました)。

4

2 に答える 2

4

次の方法で、navigationBar のデフォルトの色合いを変更できますUIAppearance

UINavigationBar.appearance().tintColor = UIColor.orangeColor()
于 2015-08-26T17:23:34.453 に答える