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 编程语言参考

于 2011-02-22T18:02:43.477 回答
0

那么,您的第一个问题是您释放 tempView 然后尝试将其插入到视图中。根本不要释放 tempView,只需保持原样插入主视图即可。

于 2011-02-22T18:04:32.250 回答