předávat data předmětem uiviewcontroller na iPhone

hlasů
0

Mám iPhone aplikaci s tableviewcontroller. Po klepnutí na určitou buňku, že otevře novou uiviewcontroller s tímto kódem:

 nextViewController = [[avTouchViewController alloc] initWithNibName:@avTouchViewController bundle:nil];

Uiviewcontroller nad nazývá avTouchViewController má vlastnost, která vypadá takto:

IBOutlet SomeObject *controller;

SomeObject je objekt se všemi příslušnými zobrazení vlastností.

Chtěl bych předat parametr NSString z tableviewcontroller I inicializaci avTouchViewController se na someObject.

Jak to mohu udělat?

Položena 26/08/2009 v 23:58
zdroj uživatelem
V jiných jazycích...                            


2 odpovědí

hlasů
1

Jsem trochu zmatený vaši otázku; Říkáte, že vytváření avTouchViewControllerů, kdy se buňka využit uvnitř existující UITableView, ale vaše poslední část popisuje inverzní situace.

Zjednodušeně řečeno, pokud chcete předat informace do kontroleru pohledu, prostě to vlastnost, která může být nastavena (který již může být ten případ), například:

nextViewController = [[avTouchViewController alloc] initWithNibName:@"avTouchViewController" bundle:nil];
nextViewController.controller = theInstanceOfSomeObjectIWantToPass;

Můžete také chtít přejmenovat controllermajetek. Do čtečky, to nedává smysl, že řadič pohled má vlastnost nazvanou controller, která je ve skutečnosti SomeObject*. Stejně tak vaše jména tříd by měly být aktivovány, tj použít AvTouchViewControllermísto avTouchViewController.

Odpovězeno 27/08/2009 v 01:01
zdroj uživatelem

hlasů
0

Kdybych dělal to bych přidat své vlastní inicializátor do mého UIViewController podtřídy:

- (id)initWithController:(NSString *pController) {
    if (self = [super initWithNibName:@"avTouchViewController" bundle:nil]) {
        self.controller = pController;
    }
    return self;
}

A pak stačí zavolat na následující (v Tableview: didSelectRowAtIndexPath: nebo Kdekoli):

NSString *controller = @"Sample String";

AVTouchViewController *nextViewController = [[AVTouchViewController alloc] initWithController:controller];
[controller release];

[self.navigationController pushModalViewController:nextViewController animated:YES];
[nextViewController release];

Jako výchozí bod stylu, názvy tříd běžně začínají velkými písmeny (proto moje změny na AVTouchViewController).

Odpovězeno 27/08/2009 v 01:08
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more