2012-11-08 2 views
1

Ive été à la recherche de la réponse à cela, mais rien encore.Liaison multiple xib à un contrôleur

J'essaye de contourner un problème si j'avais une vue qui redimensionne automatiquement. Si 3GS, etc ... il utilise picture.png, si iphone 4 & 5 il utilise [email protected]

Toutefois, lorsque le redimensionnement se produit, l'arrière-plan sur l'iPhone 4 s'étire sous la bordure inférieure, de sorte qu'une partie de l'arrière-plan est couverte.

sur l'iphone 5 il correspond parfaitement, mais les boutons ne s'ajustent pas, ils restent en place comme si l'écran venait d'une 3G (même chose si l'iphone 4 est le simulateur).

Si vous avez une solution pour le problème ci-dessus, je suis tout ouïe, je suis très nouveau à xcode, et j'essaie juste d'apprendre.

En tant que travail autour, je pensais à la vérification de screensize, puis le chargement d'un xib construit pour cet écran, mais mon application se bloque avec le code suivant:

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil; 

CGRect screenBound = [[UIScreen mainScreen] bounds]; 
CGSize screenSize = screenBound.size; 
CGFloat screenHeight = screenSize.height; 

if (screenHeight == 568){ 
    nibNameOrNil = (NSString*)@"main5"; 
    self = [self initWithNibName:nibNameOrNil bundle:nil]; 
    if (self) { 
     // Custom initialization 
    } 

}else{ 
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 
    if (self) { 
     // Custom initialization 
} 

} 
return self; 

Nous vous remercions à l'avance

debug

auto Mainscreencantroller * 0x00000000 nibNameOrNil NSString * 0x02a01196 NSObject NSObject
isa classe 0x656a 626F [0] Classe
nibBundleOrNil __NSArrayM * 0x0a55d3e0

+0

Vous appelez [self initWithNibName: nibNameOrNil bundle: nil] ;. Cela devrait probablement être super – NSAddict

+1

La bonne solution est de se renseigner sur le nouveau système de contrainte de mise en page pour gérer les tailles et les positions des vues. Vous ne devriez pas avoir besoin de deux fichiers xib différents. En outre, la taille de l'écran sur l'iPhone 4 est la même que 3 pas 5. – rdelmar

Répondre

0

Ok après avoir joué pendant un certain temps, j'ai décidé d'aborder en contrôlant les limites Grect.

est Ci-dessous le code,

Cependant, je suis toujours intéressé à savoir si vous pouvez charger plusieurs xibs dans un contrôleur

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 

{

self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 
if (self) { 

    CGRect screenBound = [[UIScreen mainScreen] bounds]; 
    CGSize screenSize = screenBound.size; 
    CGFloat screenWidth = screenSize.width; 
    CGFloat screenHeight = screenSize.height; 
    NSLog(@"screenheight =%f", screenHeight); 
    if(screenHeight == 568){ 

     screenBound.origin.y = -44; 
     self.view.bounds = screenBound; 

    }else if (screenHeight ==480){ 
     self.view.bounds = screenBound; 
    } 
     // Custom initialization 
} 

auto retour;

Questions connexes