2016-04-29 15 views
-3
[self.navigationItem.leftBarButtonItems enumerateObjectsUsingBlock:^(UIBarButtonItem* item, NSUInteger i, BOOL *stop) { 
     item.customView.alpha = alpha; 
    }]; 
    [self.navigationItem.rightBarButtonItems enumerateObjectsUsingBlock:^(UIBarButtonItem* item, NSUInteger i, BOOL *stop) { 
     item.customView.alpha = alpha; 
    }]; 

このコードブロックをSwiftに変換するにはどうすればよいですか?ありがとう。このコードをObjective-CからSwiftに変換するには?

+0

あなたが受け入れるように答えるかを選択するために、ループ、今は非常に難しい – Bhupesh

+0

のために使用することができ、著者は「didnの仮定downvoted問題を解決するために何かを試してください:/ – Injectios

+0

少なくとも、迅速な言語を学ぼうとするべきです。 –

答えて

2

はスイフトで、leftBarButtonItemsしたがって、それは任意連鎖とforEach()で列挙することができる任意の配列[UIBarButtonItem]?、 あります。 customViewもオプションUIView?なので、alpha プロパティへの代入は、同様に、オプションのチェーンで行われます。

self.navigationItem.leftBarButtonItems?.forEach { item in 
    item.customView?.alpha = alpha 
} 
1

ウェブサイトをスピーディーにするためのクールなobj-cがあります。それらの1つを使用し、結果を整理して、あなたは行く準備ができました!

self.navigationItem.leftBarButtonItems.enumerateObjectsUsingBlock({(item: UIBarButtonItem, i: Int, stop: Bool) -> Void in 
    item.customView.alpha = alpha 
}) 
self.navigationItem.rightBarButtonItems.enumerateObjectsUsingBlock({(item: UIBarButtonItem, i: Int, stop: Bool) -> Void in 
    item.customView.alpha = alpha 
}) 

しかし、それは最もswiftyコードではありません。

これはobjectivec2swift.comからの結果です。それを整理しましょう:

self.navigationItem.leftBarButtonItems?.forEach { 
    $0.customView?.alpha = alpha 
} 
self.navigationItem.rightBarButtonItems?.forEach { 
    $0.customView?.alpha = alpha 
} 

それを見てください!とても甘い!

+1

私が間違っていない限り、これと前の回答のコードはコンパイルされません。 –

+0

はい、初めてコードをテストしませんでした。 @MartinR – Sweeper

関連する問題