iphone / ObjC - метод удаления / добавления просмотров на основе аргументов - возможно? - PullRequest
0 голосов
/ 22 февраля 2011

Я новичок - прошу прощения, - но я экспериментирую с многофакторными приложениями для iphone и удивляюсь, была ли нижеприведенная идея а) возможной и б) разумной.

Я хочу создать метод, который может удалять и добавлять представления на основе некоторых параметров - исходящего, входящего и входящего классов.

- (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];

Любая помощь очень ценится - мне есть чему поучиться.

Mike.

Ответы [ 2 ]

1 голос
/ 22 февраля 2011

Ваш код неверен, поскольку (кажется, что) вы неправильно поняли, как имена методов работают в 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 .

0 голосов
/ 22 февраля 2011

Итак, ваша первая проблема - вы отпускаете tempView, а затем пытаетесь вставить его в представление.Ни в коем случае не выпускайте tempView, просто оставьте его как есть для вставки в основной вид.

...