I am learning how to create Jailbreak tweaks.
I hope this is just a simple question. I am using Theos.
I have the following setup:-
OneView.h
#import <UIKit/UIKit.h>
@interface OneView : UIViewController
@end
=====================================
OneView.m
#import "OneView.h"
@interface OneView ()
@end
@implementation OneView
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
[self setOpaque:NO];
}
return self;
}
@end
=====================================
Tweak.xm
#import <UIKit/UIKit.h>
#include "OneView.h"
//This funciton works and compiles fine
%new
-(void)createView:() {
UIView *view11 = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 480, 272)];
view11.backgroundColor = [UIColor redColor];
[self.view addSubview:view11];
}
%end
//This does not work it creates an error when I compile.
%new
-(void)createOneView:() {
OneView *view11 = [[OneView alloc] initWithFrame:CGRectMake(0, 0, 480, 272)];
view11.backgroundColor = [UIColor redColor];
[self.view addSubview:view11];
}
%end
=====================================
Error
Preprocessing Tweak.xm...
Compiling Tweak.xm...
Tweak.xm:144:44: error:
'OneView' may not respond to 'initWithFrame:' [-Werror]
OneView *view11 = [[OneView alloc] initWithFrame:CGRectMake(0, 0, 480,
272)];
~~~~~~~~~~~~~~~ ^
Tweak.xm:145:16: error: property 'backgroundColor' not found on object of type 'OneView *'
view11.backgroundColor = [UIColor redColor];
^
Tweak.xm:146:31: error: cannot initialize a parameter of type 'UIView *' with an lvalue of type 'OneView *'
[self.view addSubview:view11];
It does not like initWithFrame! is this something to do with headers !
Thanks
=========================
Error when inheriting UIView
bash-3.2# make package
Making all for tweak OneView...
Preprocessing Tweak.xm...
Compiling Tweak.xm...
Linking tweak OneCall...
Undefined symbols for architecture armv7:
"_OBJC_CLASS_$_OneCallView", referenced from:
objc-class-ref in Tweak.xm.249b7f24.o
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [obj/OneView.dylib.ba964c90.unsigned] Error 1
make[1]: *** [internal-library-all_] Error 2
make: *** [OneView.all.tweak.variables] Error 2
=========================
Error when inheriting UIViewController (Updated)
OneView *view11 = [[OneView alloc] initWithFrame:CGRectMake(0, 0, 480, 272)];
view11.view.backgroundColor = [UIColor redColor];
[self.view addSubview:view11];
'OneView' may not respond to 'initWithFrame:' [-Werror]
OneView *view11 = [[OneView alloc] initWithFrame:CGRectMake(0, 0, 480,
272)];
You made your OneView a subclass of UIViewController:
@interface OneView : UIViewController
But you have to make it a subclass of UIView:
@interface OneView : UIView