dobra nowego tematu zakładał nie będę, napisze tutaj. Zrobiłem pliki z klasami, każda w osobnym pliku, osobne .xib'y dla każdej klasy i niby to wszystko gra jak w mojej klasie RootViewController zadeklaruje sobie ze dany xib ma sie wczytac. wtedy jest okej. no i tak oto zadeklarowalem sobie wczytywanie menu na start aplikacji:
RootViewControoler.m
Kod:
- (void)viewDidLoad
{
Menu *Controller = [[Menu alloc] initWithNibName:@"Menu" bundle:nil];
self.menu = Controller;
[self.view insertSubview:Controller.view atIndex:0];
[Controller release];
[super viewDidLoad];
}
okej, dziala pieknie. nadchodzi moment, w ktorym uzytkownik wybiera opcje w menu. dajmy na to klika na przycisk i wywoluje sie funkcja playGame:. mam ja zadeklarowana nastepujaco:
Menu.h
Kod:
@class RootViewController;
@class Game;
@interface Menu : UIViewController{
Menu *menu;
Game *game;
}
@property (nonatomic, retain) Menu *menu;
@property (nonatomic, retain) Game *game;
@property (nonatomic, retain) IBOutlet UIButton *btnPlay;
- (IBAction)playGame:(id)sender;
Menu.m
Kod:
#import "RootViewController.h"
#import "Menu.h"
#import "Game.h"
...
@implementation Menu
@synthesize menu, game;
@synthesize btnPlay;
...
- (IBAction)playGame:(id)sender{
Game *Controller = [[Game alloc] initWithNibName:@"Game" bundle:nil];
self.game = Controller;
[menu.view removeFromSuperview];
[self.view insertSubview:Controller.view atIndex:0];
[Controller release];
NSLog(@"Game.");
}
...
- (void) dealloc
{
...
[btnPlay release];
[menu release];
[game dealloc];
[super dealloc];
}
w konsoli oczywiscie po kliknieciu pokazuje się napis "Game." pozatym ekran sie nie zmienia :/ Coś robię źle ale nie wiem w którym miejscu : /
Proszę o pomoc.
---------- Wpis dodano o 21:44 ---------- Poprzedni wpis dodano o 21:35 ----------
hmm. zauważyłem, że robię błąd. tak jest poprawniej, ale i tak się nie zmienia. zwalniałem Controller i się do niego odwoływałem :/
Kod:
- (IBAction)playGame:(id)sender{
Game *Controller = [[Game alloc] initWithNibName:@"Game" bundle:nil];
self.game = Controller;
[Controller release];
[menu.view removeFromSuperview];
[self.view insertSubview:game.view atIndex:0];
NSLog(@"Game.");
}
Nadal proszę o pomoc.
---------- Wpis dodano o 21:57 ---------- Poprzedni wpis dodano o 21:44 ----------
Tak zadziałało, ale wydaje mi się, że menu.view nadal zjada zasoby.
Kod:
- (IBAction)playGame:(id)sender{
Game *Controller = [[Game alloc] initWithNibName:@"Game" bundle:nil];
self.game = Controller;
[Controller release];
[menu.view removeFromSuperview];
[self.view insertSubview:game.view aboveSubview:self.view];
// [self.view insertSubview:menu.view belowSubview:game.view];
NSLog(@"Game.");
}