Это смехотворно глупый вопрос, но у меня проблемы с ним. Я создал один .xib с тремя UIView в нем. Один зеленый вид, один красный вид и один синий вид. Зеленый экран отображается, когда я запускаю симулятор. Я положил 2 кнопки на свой «Зеленый взгляд». Один, чтобы показать «Красный вид», а другой - «Голубой взгляд». Вот мой код для Green View:Objective-C заменить текущий UIView на другой UIView
#import "IDGreenView.h"
#import "IDRedView.h"
#import "IDBlueView.h"
#import "IDGreenView.h"
@interface IDGreenView()
@property (weak, nonatomic) IBOutlet UIButton *RedViewButton;
@property (weak, nonatomic) IBOutlet UIButton *BlueViewButton;
@end
@implementation IDGreenView
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code
}
return self;
}
- (IBAction)showRedView:(id)sender {
[self.window addSubview:[[IDRedView alloc]init]];
}
- (IBAction)showBlueView:(id)sender {
[self.window addSubview:[[IDBlueView alloc]init]];
}
@end
Вот мой код для Red Вид:
#import "IDRedView.h"
@implementation IDRedView
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code
}
return self;
}
@end
Я могу видеть, что это происходит в Красной View в методе initWithFrame, так что я знаю, что вызов ОК. Что мне нужно сделать, чтобы отобразить Red View?
спасибо.
---------------------------------------------- ---- Обновленный комментарий ------------------------------------------ --------
Nope. Я поставил следующий код в ViewController, и это тоже не сработало.
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
[self.view addSubview:[[IDRedView alloc] initWithFrame:self.view.bounds]];
}
Почему это не отображается?