두 개의 컨트롤러가 있습니다 - 콘솔에서 어떻게 함수를 호출 할 수 있습니까? 나는이 작업을 수행하는 방법을 알아낼 수RubyMotion : 콘솔에서 함수를 호출하려면 어떻게해야합니까?
(main)>
두 개의 컨트롤러가 있습니다 - 콘솔에서 어떻게 함수를 호출 할 수 있습니까? 나는이 작업을 수행하는 방법을 알아낼 수RubyMotion : 콘솔에서 함수를 호출하려면 어떻게해야합니까?
(main)>
유일한 방법은 꽤 구역질입니다 거기에서 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 메서드를 호출 할 수 있어야합니다.
보통 콘솔에서 쉽게 액세스 할 수 있도록보기 컨트롤러에 임시 전역 변수를 추가합니다.
def viewDidLoad
$temp_view = self
end
예쁜 것은 아니지만 작업이 완료됩니다.
대부분의 경우 UIViewController
-s의 계층 구조가 있으며 그 중 일부는 탭할 수 있습니다. UIWindow#rootViewController
인스턴스에서 시작하여 childViewControllers
을 탐색합니다. BubbleWrap
을 사용하여 창 (App.window
)에 액세스하거나 위임 (App.delegate
)에 액세스하는 것이 좋습니다. 필자가 유지하고있는 SugarCube
gem도보기 또는 viewController 계층 구조를 쉽게 볼 수있는 방법을 제공합니다.이 목적으로 tree
및 tree root
명령을 REPL에서 사용할 수 있습니다.