カスタム uinavigationbar が必要なプロジェクトに取り組んでいます。目的の効果は、ナビゲーション コントローラー内に含まれるビューのスタックの視覚化です。
先に進むビューごとに、左のビューのナビゲーションバーに新しいボタンが表示されると想像してください。
ビュー 1 >> ビュー 2 >> ビュー 3
私はカスタムの再利用可能な iOS コンポーネントを作成することに非常に慣れていますが、他の人がこのタスクにどのように取り組むかについて非常に興味があります。
現時点で実行しているインスタンスは UIView のサブビューであり、初期化時に、デリゲート クラスによって提供される辞書の配列に詳述されているエントリに UIButtons を追加して、ナビゲーション バーを作成します。
擬似コード:
@protocol NavDelegate
- (void)UIButtonClicked;
@end
@protocol NavDataSource
- (NSMutableArray *)arrayOfDictionaries;
@end
@interface Navbar : UIView
<NavDelegate,NavDataSource>
{
//create and synthesize delegate and datasource objects
}
@end
@implementation NavBar
- (id)init
{
//override and instantiate necessary objects
}
- (void)layoutSubviews
{
//here I use the number of dictionaries in the delegate returned array to add UIButtons to
//a UIView adding control events for when the button is clicked
}
@end
それは機能しますが、もっとエレガントな解決策があると感じずにはいられません。
また、これは避けるべき慣行だと人々が考えているかどうかも知りたいです。私は常に「車輪の再発明」に消極的ですが、プロジェクトの利害関係者はこれが優れた UI 要素であると考えています。意見の潮流が「何としても避ける」である場合、私は確かに議論を彼らに戻します.
よろしくお願いします