0

私は初心者ですが、申し訳ありませんが、マルチビュー iPhone アプリを試していて、以下のアイデアが a) 可能であり、b) 賢明であるかどうか疑問に思いました。

送信ビュー、受信ビュー、および受信クラスなど、いくつかのパラメーターに基づいてビューを削除および追加できるメソッドを作成したいと考えています。

- (void)switchViews:(Class)inView:(Class)outView:(Class)inClass{

inClass *tempView = [[inClass alloc]
                     initWithNibName:@"inView" bundle:nil];


tempView.burgerViewController = self;   

self.inView = tempView;
[tempView release];


[outView.view removeFromSuperview];
[self.view insertSubview:tempView.view atIndex:0];

}

これは次のように呼び出されます。

[burgerViewController switchViews:viewMainMenu:viewOptions:ViewMainMenu];

どんな助けでも大歓迎です-私は学ぶことがたくさんあります。

マイク。

4

2 に答える 2

1

あなたのコードは間違っています.Objective-Cでメソッド名がどのように機能するかを誤解しているようです.

たとえば、現在の方法では、次の名前が付けられます。

switchViews:::

それはおそらくあなたが探しているものではありません。

より適切な名前は次のとおりです。

replaceView:forProperty:withViewOfClass:

宣言すると、次のようになります。

- (void) replaceView:(UIView *)outView forProperty:(NSString *)propertyName withViewOfClass:(Class)inClass;

そして、次のように使用します。

Class viewOptions = ...;
NSString *viewMainMenu = @"...";
[burgerViewController replaceView:viewMainMenu forProperty:viewMainMenu withViewOfClass:viewOptions];

Objective-C のメソッド名とインターリーブされた引数の詳細については、Objective-C Programming Language Reference を参照してください。

于 2011-02-22T18:02:43.477 に答える
0

最初の問題は、tempView を解放してからビューに挿入しようとすることです。tempView をまったく解放しないでください。メイン ビューに挿入するためにそのままにしておいてください。

于 2011-02-22T18:04:32.250 に答える