Я хочу использовать Frida для переключения текущего View Controller моего приложения на другой View Controller, например, вместо отображения LoginController, я хочу переключиться на ContactsController.
Раньше в Cycript это было просто: UIApp.keyWindow.rootViewController = [[SomeOtherController alloc]init]
.Но я не могу понять, как это сделать с Фридой.
То, что я пробовал до сих пор:
// Allocation of the current View Controller:
var UIApp = ObjC.classes.UIApplication;var ui = UIApp.alloc()
// Allocation of my target View Controller:
var test = ObjC.classes["MyApp.ContactsViewController"];
var testui = test.alloc();
Наивно, я думал, что это будет работать:
ui = testui;
Синтаксис кажется правильным, но это не такДелать что-нибудь.Я могу инициализировать другой контроллер:
testui.init()
// {"handle": "0x108d915b0"}
Когда я прослеживаю этот метод, я вижу, что он вызывается, но приложение не отображает другой View Controller.
В документации Frida только показано, как отобразить предупреждающее сообщение, и я не смог успешно изменить этот код для своих целей.Например, следующая строка привела к падению моего приложения, и я решил, что понятия не имею, что делаю, и лучше попросить о помощи:
UIApplication.sharedApplication().keyWindow().rootViewController().presentViewController_animated_completion_(testui, true, NULL);
Так что любая помощь будет принята.