1

ほとんどのviewControllerに共通のビューがほとんどありません。私が気付いたのは、すべてのviewControllerに単一のコードを再利用できることです。これは絶対に賢明です。このために、次のような静的メソッドを持つ クラスUtilsを作成することにしました。

+(void)createCommonViews:(float)yAxis:(NSString*)text;  

私の場合、一般的なビューは3つのラベルと2つの画像です。

問題: Utilsからこれらのビューを追加できません。Utilsからのビューを追加できるように、自分自身をパラメーターとして送信するにはどうすればよいのでしょうか。viewControllerの外部にビューを追加するのは間違っている可能性があります。その場合、解決策は何でしょうか?これらすべてのビューをで取得し、 UtilsメソッドUIViewのreturn typeをとして設定してから( viewControllerからメソッドを呼び出した後に) viewControllerに追加すると、問題が解決する場合があります。しかし、私が探しているのは他の解決策です。 UIViewUIView

4

3 に答える 3

1
+(void) createCommonViews:(float)yAxis withText:(NSString*) text toTarget:(UIViewController*) target
{
//create views
    [target addSuview:view];
}

しかし、Uiviewを返し、後でUIViewControllerに追加する方が、はるかに優れたソリューションだと思います。

于 2012-04-09T11:21:28.023 に答える
1

あなたが試みている方法は、ビューオブジェクトをシングルトンにすることです。これはせいぜい珍しいことであり、最悪の場合、クラッシュが発生するのを待っています。次のように、View Controller クラスごとにカスタム ビューの独自のインスタンスを作成することをお勧めします。

@interface MyCommonView : UIView

// ...

@end



@interface MyViewController_A : UIViewController {
   MyCommonView *commonView;
}

@property (strong, nonatomic) IBOutlet MyCommonView *commonView;

@end



// Meanwhile somewhere else...



@interface MyViewController_B : UIViewController {
   MyCommonView *commonView;
}

@property (strong, nonatomic) IBOutlet MyCommonView *commonView;

@end
于 2012-04-09T11:25:23.567 に答える
1

すべての一般的なものの親ビューとして機能するviewControllerを作成し、CommonViewControllerと呼び、表示するすべてのviewcontrollerにこれを実装します

-(void) viewDidLoad 
{
   [self.view addSubView:[[CommonViewController alloc] initWithRect:..];
}

または代わりにxibファイルを使用する

于 2012-04-09T11:25:51.877 に答える