2012-06-27 5 views

답변

7

유일한 방법은 꽤 구역질입니다 거기에서 UIApplication sharedApplication 클래스 메서드 및 시추를 사용하는 것입니다. 불행하게도

(main)> UIApplication.sharedApplication.delegate 
=> #<AppDelegate:0x6c8a800 @window=#<UIWindow:0x6e71280>> 

나는이 개인 변수에 액세스 한 다음 뷰 컨트롤러에서 얻을 더욱 드릴 다운 내 AppDelegate에 클래스에 attr_reader :window를 추가했다 창에 액세스하려면 : 이제

(main)> vc = UIApplication.sharedApplication.delegate.window.rootViewController 
=> #<TouchesViewController:0x8c747c0> 

당신이해야을 해당 뷰 컨트롤러에서 모든 public 메서드를 호출 할 수 있어야합니다.

5

보통 콘솔에서 쉽게 액세스 할 수 있도록보기 컨트롤러에 임시 전역 변수를 추가합니다.

def viewDidLoad 
    $temp_view = self 
end 

예쁜 것은 아니지만 작업이 완료됩니다.

0

대부분의 경우 UIViewController-s의 계층 구조가 있으며 그 중 일부는 탭할 수 있습니다. UIWindow#rootViewController 인스턴스에서 시작하여 childViewControllers을 탐색합니다. BubbleWrap을 사용하여 창 (App.window)에 액세스하거나 위임 (App.delegate)에 액세스하는 것이 좋습니다. 필자가 유지하고있는 SugarCube gem도보기 또는 viewController 계층 구조를 쉽게 볼 수있는 방법을 제공합니다.이 목적으로 treetree root 명령을 REPL에서 사용할 수 있습니다.

관련 문제