2011-06-14 38 views
1

我试图调整默认IASKAppSettingsViewController的行为,以便它可以为自定义视图(类型= IASKCustomViewSpecifier)提供自定义子视图控制器(类型= PSChildPaneSpecifier)。子类化IASKAppSettingsViewController

我试过在不添加任何新功能的情况下继承IASKAppSettingsViewController。

但是,当我加载我自己的子类时,设置视图完全是空的 - 即使是裸露的子类也是如此。当我切换回默认的IASKAppSettingsViewController时,一切都按预期工作。

我已经尝试在我的子类中设置断点不同的地方,一切似乎工作正常 - 除了没有任何显示。

我试过在文档中寻找线索,但似乎无法找到解释原因的任何东西。 InAppSettingsKit的文档甚至指出它是为子类设计的。

我在这里错过了什么?任何线索都是值得赞赏的 - 甚至可以更好地为傻瓜提供一步一步的指导。

更新,代码:

设置的另一面视图。它的工作原理与标准IASKAppSettingsViewController但失败,我的空衍生MyCustomSettingsViewController

- (IBAction)showInfo:(id)sender 
{  
    // Setup navigation controller for settings view 
    MyCustomSettingsViewController *settings = [[MyCustomSettingsViewController alloc] init]; 
    //IASKAppSettingsViewController *settings = [[IASKAppSettingsViewController alloc] init]; 
    settings.delegate = self; 
    settings.showDoneButton = YES; 
    UINavigationController *navigation = [[UINavigationController alloc] initWithRootViewController:settings]; 
    navigation.navigationBar.barStyle = UIBarStyleBlack; 
    [settings release]; 

    // Display the settings 
    navigation.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; 
    [self presentModalViewController:navigation animated:YES]; 
    [navigation release]; 
} 

回答

1

尝试这种方法添加到您的子类:

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { 
    return [super initWithNibName:@"IASKAppSettingsView" bundle:nibBundleOrNil]; 
} 

如果你不这样做,的IASKAppSettingsViewController踢的默认实现,并试图找到一个你的类名来命名的笔尖,在这情况下“MyCustomSettingsViewController.nib”。这可能不存在。

发生这种情况是因为默认实现-init调用-initWithNibName:nil bundle:nilnil作为文件名意味着搜索默认笔尖。

+0

是的,我忘了添加默认的nib文件。我只是假设用一个“空”实现继承它只会让它作为基类工作 - RTFM :-) – 2011-06-21 20:25:01

0

尝试在初始化步骤设置断点,如果添加的是作为一个子视图/推导航控制器上。为每种方法使用NSLogs,以便您可以找到问题。如果没有任何工作发送给我的代码(使用IASKAppSettingsViewController创建一个演示代码)来解决问题,然后我会研究这个问题。