THEOS / iPhone越狱编程 - 我应该如何隐藏ViewController中的View?

时间:2012-12-09 23:42:19

标签: jailbreak cydia theos

我正在尝试编写一个Cydia的调整,并且应该在加载和隐藏视图时挂钩一个viewcontroller类 - 我尝试了以下内容:

Tweak.xm:

%hook ScoresViewController

- (void)viewWillAppear:(BOOL)fp8 {
    %orig;

    self.view.hidden = YES;
}

%end

但不幸的是,当尝试使用THEOS“制作”Tweak时,我得到以下内容:

Making all for tweak scoresenhancer...
Preprocessing Tweak.xm...
Compiling Tweak.xm...
Tweak.xm: In function 'void       _logos_method$_ungrouped$ScoresViewController$viewWillAppear$(ScoresViewController*, objc_selector*, BOOL)':
Tweak.xm:49: error: request for member 'view' in 'self', which is of non-class type 'ScoresViewController*'
Tweak.xm: In function 'void _logos_method$_ungrouped$ScoresViewController$viewWillAppear$(ScoresViewController*, objc_selector*, BOOL)':
Tweak.xm:49: error: request for member 'view' in 'self', which is of non-class type 'ScoresViewController*'
lipo: can't figure out the architecture type of: /var/tmp//ccFsVzMR.out
make[2]: *** [obj/Tweak.xm.o] Error 1
make[1]: *** [internal-library-all_] Error 2
make: *** [scoresenhancer.all.tweak.variables] Error 2

非常感谢您的帮助。 我还想了解如何到达自定义类的ivars(即:ScoresViewController)。

1 个答案:

答案 0 :(得分:2)

没有告诉编译器ScoresViewController是UIViewController后代。你可以在这里做几件事。

[(UIViewController *)self view].hidden = YES;

@interface ScoresViewController : UIViewController @end
...
self.view.hidden = YES;