Как передать значение переменной в subview в iphone? - PullRequest
1 голос
/ 10 февраля 2010

Я новичок в разработке для iphone. Я создаю вашу ламповую RSS-ленту. В первом табличном представлении я отображаю заголовок, опубликованные данные и изображение в каждой ячейке. Все это содержимое извлекается со страницы XML путем анализа XML. Я также проанализировал и получил описание для отображения и сохранил его в непостоянном массиве. При щелчке строки он переходит к другому табличному представлению, где я подробно отображаю все содержимое (заголовок, дата, сводка). Я хочу использовать одни и те же изменяемые массивы и оба представления. Как я могу этого достичь? Или мне нужно еще раз проанализировать XML-файл в подпредставлении, чтобы отобразить все содержимое. Пожалуйста, ведите меня. Спасибо.

Ответы [ 3 ]

2 голосов
/ 10 февраля 2010

Отредактированный

Возможно, вы захотите переопределить метод initWithNibName в контроллере подробного представления.

 // The designated initializer.  Override if you create the controller programmatically and want to perform customization that is not appropriate for viewDidLoad.
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil withMutableArray: (NSMutableArray *) theArray withAnotherArray: (NSMutableArray *) theOtherArray{
    if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {
        // Here you should declare a local variable with the property & synthesize to store the array that is being passed
        myLocalArray = theArray;
        myOtherLocalArray = theOtherArray;
    }
    return self;
}

Не забудьте также объявить этот метод в файле .h, чтобы предыдущий контроллер знал, что он существует.

Удачи.

1 голос
/ 10 февраля 2010

Вы можете создать подкласс второго представления, добавить некоторые переменные экземпляра и установить их при создании представления, которое нужно нажать. Передайте все, что вы уже проанализировали для первого представления таблицы, затем любую информацию, которой у вас еще нет, просто повторите анализ во втором представлении.

Кроме того, вы можете использовать Базовые данные и передавать контекст управляемого объекта, чтобы обеспечить постоянное хранилище данных для всего вашего приложения. Это может быть немного больше работы, хотя.

0 голосов
/ 09 декабря 2011

Если у вас есть кнопка, которая звонит:

PickerViewController *pvController = [[PickerViewController alloc] init];
pvController.hidesBottomBarWhenPushed = YES;
pvController.BrillianMustache = BrilliantMustache;
pvController.passedVariable = BrilliantMustache.varToPass;
[self.navigationController pushViewController:pvController animated:YES];
[pvController release];Initialize the variable in the receiving view.

тогда у вас должен быть BrilliantMustache (в данном случае экземпляр базовых данных), а также параметр pastPickerVariable, созданный и синтезированный в представлении получения (pvController).

Затем в vewDidLoad

- (void)viewDidLoad {
    NSLog(@"%@",self.passedVariable);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...