2011-01-14 4 views
3

Я хотел бы создать новый viewController и передать данные при создании экземпляра.Create View Controller с параметрами

У меня есть словарь с некоторыми данными и вы хотите получить доступ к этим данным, как только будет создан viewController.

Я попытался это:

//create the recipe 
    myRecipe = [[RecipeCard alloc] init]; 
     //create a dictionary here... 

//call the setRecipeItems method of the recipe I have created 
     [myRecipe setRecipeItems: dictionary] 

; 

Проблема заключается в том, что пожары setRecipeItems перед видом сделал груз.

В идеале я хотел бы сделать что-то вроде:

myRecipe = [[RecipeCard Alloc] initWithData: словарь];

Но это не работает для меня

Благодарности

+0

После написания этого, я полагал, что я могу просто установить данные с первым способом, а затем использовать эти данные в методе я вызываю после ViewDidLoad, но мне интересно, если это возможно, так что я не удалил –

ответ

4

Вы можете делать то, что вы просите, делая это: (место это в вашем файле .h)

@interface RecipeCard : UIViewController { 
    NSDictionary *recipes; 
} 

- (id)initWithRecipes:(NSDictionary *)Recipes; 

@end 

(Затем в вашем .m файле)

@implementation RecipeCard 

- (id)initWithRecipes:(NSDictionary *)Recipes 
{ 
    if(self = [super init]) { 
    recipes = [NSDictionary dictionaryWithDictionary:Recipes]; 
    [recipes retain]; 
    } 
    return self; 
} 

@end 

Теперь вы можете создать свой рецепт Карта, как это:

myRecipe = [[RecipeCard alloc] initWithRecipes:someDictionaryObject]; 
+0

именно то, что я пытался сделать. благодаря –