我要做的是点击一个按钮(在代码中创建的),并让它调用一个不同的视图控制器,然后让它在新的视图控制器中运行一个函数。
我知道这在IB中相对容易完成,但这不是一个选择。
我想做的一个例子是,如果你有两个视图控制器一个带有房子的启动画面。另一个视图控制器有一个房子的遍历你可以按照设定的顺序遍历所有的房间。在启动画面中,每个房间都有按钮,玩家可以在游戏中跳跃到任意地点。
我要做的是点击一个按钮(在代码中创建的),并让它调用一个不同的视图控制器,然后让它在新的视图控制器中运行一个函数。
我知道这在IB中相对容易完成,但这不是一个选择。
我想做的一个例子是,如果你有两个视图控制器一个带有房子的启动画面。另一个视图控制器有一个房子的遍历你可以按照设定的顺序遍历所有的房间。在启动画面中,每个房间都有按钮,玩家可以在游戏中跳跃到任意地点。
当前回答
如果你需要从watchOS上的视图控制器访问你的WatchKit扩展委托:
extDelegate = WKExtension.sharedExtension().delegate as WKExtensionDelegate?
其他回答
我就是这么做的。
[[[UIApplication sharedApplication] delegate] performSelector:@selector(nameofMethod)];
不要忘记导入。
#import "AppDelegate.h"
你可以在项目的前缀中添加#define uAppDelegate (AppDelegate *)[[UIApplication sharedApplication] delegate]。然后用下面的代码调用你的AppDelegate在任何UIViewController中的任何方法。
[uAppDelegate showLoginView];
已经添加了很多好的答案。虽然我想添加一些最适合我的东西。
#define kAppDelegate ((YourAppDelegate *)[[UIApplication sharedApplication] delegate]);
就是这样。在整个应用程序中使用它就像一个常数一样。
e.g.
[kAppDelegate methodName];
不要忘记在相应的。pch或宏文件中导入你的appdelegate .h。
如果你需要从watchOS上的视图控制器访问你的WatchKit扩展委托:
extDelegate = WKExtension.sharedExtension().delegate as WKExtensionDelegate?
如果有人想知道如何在swift中做到这一点:
if let myDelegate = UIApplication.sharedApplication().delegate as? AppDelegate {
myDelegate.someMethod()
}