Я видел много людей, которые усложняли это, используя метод didSelectRowAtPath
. Я использую Core Data в моем примере.
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
//this solution is for using Core Data
YourCDEntityName * value = (YourCDEntityName *)[[self fetchedResultsController] objectAtIndexPath: indexPath];
YourSecondViewController * details = [self.storyboard instantiateViewControllerWithIdentifier:@"nameOfYourSecondVC"];//make sure in storyboards you give your second VC an identifier
//Make sure you declare your value in the second view controller
details.selectedValue = value;
//Now that you have said to pass value all you need to do is change views
[self.navigationController pushViewController: details animated:YES];
}
4 строки кода внутри метода, и все готово.
В fileA.c:
int myGlobal = 0;
В fileA.h
extern int myGlobal;
В fileB.c:
#include "fileA.h"
myGlobal = 1;
Вот как это работает:
int
) если переменная:
int foo;
во втором объявленном вами файле C:
extern int foo;
Эти другие переменные должны быть объявлены общедоступными (используйте extern, public для C ++), и вам нужно будет включить этот файл .c. Однако я рекомендую создать соответствующие файлы .h для определения всех ваших переменных.
Например, для hello.c у вас будет hello.h, а hello.h будет хранить определения ваших переменных. Затем другой файл .c, такой как world.c, будет иметь этот фрагмент кода вверху:
#include "hello.h"
Это позволит world.c использовать переменные, которые определены в hello.h
Это немного сложнее, чем это, хотя . Вы можете использовать <> для включения файлов библиотеки, найденных в пути вашей ОС. Как новичок, я бы поместил все ваши файлы в одну папку и использовал синтаксис "".
Второй файл должен знать о существовании вашей переменной. Для этого вы снова объявляете переменную, но с ключевым словом extern
перед ней. Это сообщает компилятору, что переменная доступна, но объявлена где-то еще, что предотвращает ее создание (опять же, что может вызвать конфликты при компоновке). Хотя вы можете поместить объявление extern
в сам файл C, это ' Общий стиль - иметь сопроводительный файл заголовка (например, .h
) для каждого файла .c
, который предоставляет функции или переменные другим файлам, содержащим объявление extern
. Таким образом вы избегаете копирования объявления extern
, особенно если оно используется в нескольких других файлах. То же самое относится и к функциям, хотя вам не нужно для них ключевое слово extern
.
Таким образом, у вас будет как минимум три файла: исходный файл, в котором объявляется переменная, и сопутствующий заголовок, объявление extern
и второй исходный файл, который #include
s заголовок, чтобы получить доступ к экспортируемой переменной (или любому другому символу, экспортированному в заголовке).