2013-10-25 4 views
2

iOS 6.1과 함께 제공되는 기본 MobileSMS 앱에서 보내는 SMS를 조정할 예정입니다. "보내기"버튼에 연결해도 사용자에게 알려주는 팝업을 만들 수는 없으며 UIAlertView이나 UIViewController을 사용할 수 없습니다. 문제는 내가 어떻게 든 오버라이드 (override) 할 뷰 컨트롤러를 가지고 있지 않다는 것입니다. CTMmsEncoder 클래스입니다.로고 수정에서 UIAlertView 또는 UIViewController 표시

제 질문은 이와 같은 상황에서보기를 표시 할 수있는 방법이 있다면 제 질문입니다. 나는 비틀기를위한 많은 소스 코드를 살펴 보았지만 비슷한 경우는 찾을 수 없다. 다음, 직접 내 팅겨에서의 ViewController있는 클래스를 구현하려고 할 때

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! 

은 (클래스 ModalViewController 말) : 나는 심지어 (예상) 오류를 dylib를 만들고 거기에서 AA의 UIViewController를로드하지만 얻기 위해 노력했다 Theos는 분명히 다음과 같은 오류를 출력합니다 :

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.

답변

2

UIAlertView으로 얻는 것과 같은 것을 만들려면 적절한보기 계층 구조가없는 상황에서도 CFUserNotificationCreate()을 사용할 수 있어야합니다.

이 데몬 섹션에서 사용자에 알립니다 에 건너 뛰는 ...이 answer by KennyTM, 또는 다른 I posted here를 참조 항목 (2).

+0

분명히 아주 좋은 방법이지만 사용자 입력을 허용 할 수 있습니까? SMS를 보내기 전에 사용자가 입력 할 수있는 암호를 추가하려는 경우 제안 (2)은 경고 만 생성하거나 (1) 다른 응용 프로그램 (올바르게 가져온 경우)을 열 수 있습니까? – Panagiotis

+0

@Panagiotis, "사용자 입력"에 의한 경우, 텍스트 필드 또는 이와 유사한 것을 추가한다는 의미입니다 ... 아니, 그렇지 않습니다. 그러나 질문에 언급 된'UIAlertView'도 마찬가지입니다. 맞습니다. 연결된 답변의 제 제안 (2)은 팝업 알림 일 뿐이지 만 (1)은 UI 응용 프로그램을 완전히 열 수있는 방법입니다 (이 경우 백그라운드 데몬에서). 희망은 물건을 더 분명하게한다. – Nate

+0

@Panagiotis, 사실, 나는 스스로를 시정해야 할 수도 있습니다. 내가 보여주는 정확한 코드는 버튼이 아닌, 버튼을 제공하지만, [Apple docs] (https://developer.apple.com/library/mac/documentation/CoreFoundation/Reference/CFUserNotificationRef/Reference/reference)를 보면 .html), 경고에 텍스트 필드를 만들 수도 있습니다. 이것은 Mac OS X API 집합이므로 CFUserNotification을 사용자 정의하는 방법에 대한 후속 질문이있는 경우 'iphone'또는 'ios'대신 'osx'태그를 지정할 수 있습니다. 동일한 API가 iOS에서 작동해야하며, 단지 * 비공개 *입니다. – Nate