0

カスタム 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 要素であると考えています。意見の潮流が「何としても避ける」である場合、私は確かに議論を彼らに戻します.

よろしくお願いします

4

1 に答える 1

0

Apple は、ナビゲーション コントローラーに関する独自のドキュメントで、この種の UI に眉をひそめていると思います。

あなたの利害関係者はウェブサイトのパンくずリストの考え方を持っているように思えます...少なくとも私の意見では、モバイルアプリの設計については間違った考え方です。彼らは UI 担当者ですか、それとも UX 担当者ですか? そうでない場合は、まあ... 必要かもしれません。

そうは言っても、彼らは顧客です。:-)

于 2011-10-13T20:13:59.620 に答える