iPhone - доступ uitableviewcontroller от uitableviewcell

Проблема здесь в том, что R должен компилировать другие пакеты R: curl, openssl, XML, RCurl. Для этого на вашей платформе Linux должны быть установлены некоторые библиотеки разработки .

Часто можно догадаться, как они могут называться: если R-пакет «XXX» является проблемой, вам нужно apt-cache search для чего-то вроде libXXX-dev. Часто имя включает в себя также номер. Так что вы можете попробовать, например, из командной строки:

sudo apt-get update
apt-cache search libcurl | grep dev

найти libcurl пакетов разработки.

Затем вы можете установить их, например:

sudo apt-get install libcurl4-openssl-dev

Как минимум, я думаю, вам нужно что-то вроде:

sudo apt-get install libcurl4-openssl-dev
sudo apt-get install libxml2-dev

Затем попробуйте установить пакет R снова. Запишите любые сообщения об ошибках, при необходимости установите больше библиотек, повторяйте до тех пор, пока это не сработает.

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

11
задан adam 6 May 2009 в 10:10
поделиться

3 ответа

Обычно я поддерживаю слабую ссылку из моего UIView на мой UIViewController, если он мне нужен, обычно создавая метод, подобный следующему:

-(MyView*)initWithController:(CardCreatorViewController*) aController andFrame:(CGRect)aFrame
{
    if (self = [super initWithFrame:aFrame]) 
    {
       controller = aController;
       // more initialisation here
    }

    return self;
}

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

7
ответ дан 3 December 2019 в 01:00
поделиться

Поскольку UITableViewCell находится где-то в иерархии представлений, вы можете получить доступ к своему корневому представлению, получая view.superview, пока не получите его. Если вы не хотите добавлять какие-либо свойства к вашему представлению, вы можете получить доступ к его контроллеру через свойство представления nextResponder . Конечно, вам придется приводить его к тому классу, который вам нужен, и это может быть не самым чистым использованием собственности. Это быстрый и грязный хак, чтобы добраться до него.

Если вы ищете что-то, что можете показать своим детям, я бы хотел пройтись по вашему делегату приложения, или если ваш контроллер представления оказался Singleton, просто внедрите шаблон проектирования Singleton и получите к нему доступ через него.

4
ответ дан 3 December 2019 в 01:00
поделиться

This should do the trick:

UITableView *tv = (UITableView *) self.superview.superview;
UITableViewController *vc = (UITableViewController *) tv.dataSource;
27
ответ дан 3 December 2019 в 01:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: