Я создаю настройку отправки SMS по умолчанию для приложения MobileSMS, поставляемого с iOS 6.1. Несмотря на то, что мне удалось подключиться к кнопке «Отправить», я не могу создать всплывающее окно, чтобы информировать пользователя, ни с UIAlertView
, ни с UIViewController
. Я думаю, проблема заключается в том, что класс CTMmsEncoder
, к которому я подключен, не имеет контроллера вида, чтобы каким-то образом переопределить.Показать UIAlertView или UIViewController в Логотипе Tweak
Мой вопрос: если есть какой-то способ, я могу сделать вид в такой ситуации. Я просмотрел множество исходных кодов для настроек, но не могу найти подобный случай. Я даже пытался создать dylib и загрузить аа UIViewController оттуда, но получить (ожидаемое) сообщение об ошибке:
Oct 25 14:37:59 Pudge SpringBoard[950] <Warning>: Warning: Attempt to present <ModalViewController: 0x1dbbe1a0> on <KSMSDylibViewOne: 0x1db7da50> whose view is not in the window hierarchy!
При попытке реализовать класс с ViewController непосредственно в моей подстройке (скажем класс ModalViewController), то Теос, очевидно, выводит ошибку:
Tweak.xm:12:6: error: instance method 'presentViewController:animated:completion:' is being used on 'Class' which is not in the root class
[-Werror,-Wobjc-method-access]
[self presentViewController:view animated:YES completion:nil];
~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Есть ли способ преодолеть это, или мне нужно перепроектировать?
Спасибо заранее,
Panagiotis.
Это, очевидно, очень хороший подход, но может ли он позволить пользователю вводить данные? Если бы я хотел добавить пароль для ввода пользователем перед отправкой SMS, ваше предложение (2) создало бы предупреждение или (1) открыло другое приложение (если бы я получил его правильно), правильно? – Panagiotis
@Panagiotis, если под «пользовательским вводом» вы подразумеваете добавление текстового поля или что-то в этом роде ... нет, это не так. Но «UIAlertView», упомянутый в вашем вопросе, тоже. Правильно, мое предложение (2) в связанном ответе - это просто всплывающее оповещение, а (1) - это способ полностью открыть приложение пользовательского интерфейса (в этом случае из фонового демона). Надеюсь, что это делает вещи более ясными. – Nate
@ Panagiotis, на самом деле, мне, возможно, придется поправиться. Точный код, который я показываю, не дает вам ничего, кроме кнопок, но если вы посмотрите [в документах Apple здесь] (https://developer.apple.com/library/mac/documentation/CoreFoundation/Reference/CFUserNotificationRef/Reference/reference .html), кажется, что вы также можете создавать текстовые поля в своем предупреждении. Это набор API-интерфейсов Mac OS X, поэтому, если у вас есть вопрос о том, как настроить CFUserNotification, вы можете пометить его 'osx' вместо' iphone' или 'ios'. Те же API-интерфейсы должны работать на iOS, они просто * private *. – Nate