PSLinkCell跳转到自定义页面,如何获取前面选中的数据

问题是这样的,编写一个菜单(Preference)。
通过

PSSpecifier* sp = [PSSpecifier preferenceSpecifierNamed:@"title"
                             target:self
                             set:NULL
                             get:NULL
                             detail:NSClassFromString(@"DetailController")
                             cell:PSLinkCell
                             edit:nil];

在菜单的第一个页面生成了一系列的PSLinkCell。实现了点击某个PSLinkCell跳转到自定义的DetailController页面,但是在DetailController页面中不知道怎么获取前面选中的值。

@interface DetailController : PSListController {
}
@end

@implementation DetailController

- (id)specifiers {
    if(_specifiers == nil) {
        _specifiers = [[self loadSpecifiersFromPlistName:@"DetailController" target:self] retain];
    }
    return _specifiers;
}

@end

就是说,想在DetailController中获取PSLinkCell相关的一个值?DetailController是自定义的类吗?

是的呢。Preference方面的文档太少了。。
简单的说就是想通过这个列表点击一个PSLinkCell,跳转到下一个详情页面(中间需要传参数到详情页面)


那你给DetailController添加几个property,把你想传的参数放在property里好了

PSLinkCell这个的点击事件如何写啊。。。

我看这里有这样一段代码:

PSSpecifier* specifier = [PSSpecifier preferenceSpecifierNamed:@"title"
                                                       target:self
                                                       set:NULL
                                                       get:NULL
                                                       detail:Nil
                                                       cell:PSLinkCell
                                                       edit:Nil];
[specifier setProperty:@"/System/Library/PreferenceBundles/prefs.bundle" forKey:@"lazy-bundle"];
[specifier setAction:@selector(lazyLoadBundle:)];

可是编译却没有setAction这个方法。
[specifier setProperty:NSStringFromSelector(@selector(loadDetail:)) forKey:@“action”];
这样写编译虽然能通过,但是事件没有生效。

如果你的需求仅仅是在Settings里添加一个PreferenceBundle,然后画一个自定义的table view,那么我建议你直接用代码写一个你熟悉的UITableView好了,不要用PS类。可以参考我的LowPowerBanner,开源在了GitHub上,搜搜看

确实打算这么做了!
谢谢狗神