2

2 つのコントローラーがあります。コンソールからそれらの関数を呼び出すにはどうすればよいですか?

(main)>

4

3 に答える 3

7

The only way I can figure out how to do this is by using the UIApplication sharedApplication class method and drilling down from there, which is pretty icky.

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

Unfortunately to access the window I had to add an attr_reader :window to my AppDelegate class to access this private variable and then drill down even further to get at the view controllers:

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

Now you should be able to call any public methods on that view controller.

于 2012-06-27T23:52:43.887 に答える
5

私は通常、View Controller に一時的なグローバル変数を追加して、コンソールから簡単にアクセスできるようにします。

def viewDidLoad
  $temp_view = self
end

それはきれいではありませんが、仕事を成し遂げます。

于 2012-09-19T17:39:57.293 に答える
0

ほとんどの場合、UIViewController-s の階層があり、それらを利用できます。インスタンスから開始しUIWindow#rootViewController、 をナビゲートしますchildViewControllersBubbleWrapウィンドウへのアクセス ( App.window) またはデリゲート ( ) のいずれかを使用することをお勧めしますApp.delegate。私が管理しているSugarCubegem は、ビューまたは viewController 階層を表示する簡単な方法も提供します。この目的のためだけに REPL でtreeandコマンドを使用できます。tree root

于 2012-11-27T02:52:48.303 に答える