2013-09-29 2 views
0

Я пытаюсь передать значения (UIImage, NSString) другому ViewController, но это не сработает.Передача значений другому ViewControler

Мой код выглядит следующим образом:

первого ViewController.m

#import 2nd ViewController.h 

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    AppDetail *advc = [[AppDetail alloc] init]; 
    if ([[segue identifier] isEqualToString:@"showDetail"]) { 
     advc.appTitel = name; 
     advc.appIcon = icon; 
     advc.detailAppName = detileName; 
     advc.appDescription = description; 
    } 
} 

второй ViewController.h

#import <UIKit/UIKit.h> 

@interface AppDetail : UIViewController 

@property (strong, nonatomic) NSString *appTitel; 
@property (strong, nonatomic) UIImage *appIcon; 
@property (strong, nonatomic) NSString *detailAppName; 
@property (strong, nonatomic) NSString *appDescription; 

@end 

второй ViewController.m

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    self.title = self.appTitel; 
    self.appIconImageView.image = self.appIcon; 
    self.detailAppNameTextView.text = self.detailAppName; 
    self.appDescriptionTextView.text = self.appDescription; 
} 

Но я всегда получить (null) для всех значений!

Что я делаю неправильно?

ответ

2

Correct этим:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    if ([[segue identifier] isEqualToString:@"showDetail"]) { 

     // Get reference to the destination view controller 
     AppDetail *advcc = [segue destinationViewController]; 

     advc.appTitel = name; 
     advc.appIcon = icon; 
     advc.detailAppName = detileName; 
     advc.appDescription = description; 
    } 
} 

ниже код это когда вы не используете Раскадровка:

AppDetail *advc = [[AppDetail alloc] init]; 
+0

ОК, спасибо !! –

1

Исправьте эти строки

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    //AppDetail *advc = [[AppDetail alloc] init]; 
    if ([[segue identifier] isEqualToString:@"showDetail"]) { 
     AppDetail *advc  = segue.destinationViewController; //ADD THIS 
     advc.appTitel  = name; 
     advc.appIcon  = icon; 
     advc.detailAppName = detileName; 
     advc.appDescription = description; 
    } 
} 
Смежные вопросы