1.Tweak.xm
// add home page left button
%hook NewMainFrameViewController
#import "UIAlertView+Blocks.h"
static UIButton *sMainSettingBtn = nil;
-(void)viewDidAppear:(BOOL)view {
%orig;
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
if (sMainSettingBtn == nil) {
sMainSettingBtn = [UIButton buttonWithType:UIButtonTypeCustom];
}
[sMainSettingBtn removeFromSuperview];
[sMainSettingBtn removeTarget:nil action:@selector(clickLeftItem:) forControlEvents:UIControlEventTouchUpInside];
[sMainSettingBtn addTarget:self action:@selector(clickLeftItem:) forControlEvents:UIControlEventTouchUpInside];
sMainSettingBtn.frame = CGRectMake(0, 0, 44, 44);
[sMainSettingBtn setTitle:@"Clear" forState:UIControlStateNormal];
UIBarButtonItem *leftItem1 = [[NSClassFromString(@"MMBarButtonItem") alloc] initWithCustomView:sMainSettingBtn];
[[self navigationItem] setLeftBarButtonItems:@[leftItem1]];
});
}
%new
- (void)clickLeftItem:(UIButton *)button {
[UIAlertView showWithTitle:@"clear"
message:@"are you sure to clear chat list?"
cancelButtonTitle:@"OK"
otherButtonTitles:@[@"CANCEL"]
tapBlock:^(UIAlertView *alertView, NSInteger buttonIndex) {
if (buttonIndex == [alertView cancelButtonIndex]) {
NSLog(@"ok");
} else if ([[alertView buttonTitleAtIndex:buttonIndex] isEqualToString:@"CANCEL"]) {
NSLog(@"cancel");
}
}];
}
%end
additional files
2.Makefile
THEOS_DEVICE_IP = localhost
THEOS_DEVICE_PORT = 2223
ARCHS = arm64
include /opt/theos/makefiles/common.mk
TWEAK_NAME = wechatplugin
wechatplugin_FILES = Tweak.xm UIAlertView+Blocks.m
include /opt/theos/makefiles/tweak.mk
after-install::
install.exec "killall -9 WeChat"
3.effect
4. Postscript
any problem can comment below, I will response you.