アプリはビューベースのプロジェクト タイプです。View XIB(UIView Nib) で NSObject を使用しています。このオブジェクトがアプリのトップバーであると想定しています。
MainController UIViewController は初期画面を読み込みます。このように見えます。
UIViewController MainViewController イメージ
トップビュー(新しいもの、Xと呼びます)をロードしたかったのですが、上の画像のトップバービュー(赤い色)で個別に設計されています。
現在、「X」内に存在し、すべてのイベントをバインドし、シングルトンオブジェクトである X を完全に制御できる NSObject があります。
NSObject クラスには、自己オブジェクト インスタンスとそれが制御する uiview("X") のインスタンスを返すメソッドがあります。
メソッドは、
-(UIView*)ReturnTopBarView
{
NSLog(@"called 2");
return topBarObject.topBarView;
}
//Provides the top bar instance to all the view controllers.
//Singleton Implementation.
+ (id)GetTopBarObject
{
if(topBarObject == nil)
{
NSLog(@"called 1");
return [[TopBarObject alloc] init];
}
return topBarObject;
}
topbarview は完全に設計された topbarview("X") であり、メイン ビュー コントローラーの topbarview (上の画像の赤い部分) に含まれている必要があります。
私はメインView Controllerにメソッドを次のように書きました:
-(void)SetHomeScreen
{
self.topView = [[TopBarObject GetTopBarObject] ReturnTopBarView];
}
-(void)SetHomeScreen
appdelegate.applicationdidfinishlaunching で呼び出します[viewcontroller SetHomeScreen]
これは実際には NSObject(TopBarObject クラス) の対応するメソッドを呼び出しますが、(mainviewcontroller.topbarview) で更新されたビューは表示されません。これが今の本題です。
画像とアイコンを含むカスタム トップ バーとカスタム ボトム バーがあります。ということで、このデザインを選びました。これが最善の方法かどうかはわかりませんが、この作業を効率化するための最適なシステム設計を探しているだけです。これよりもはるかに優れた方法が他にあると思われる場合は、私と共有してください。