gpt4 book ai didi

ios - 如何查找从哪个 View Controller 调用方法

转载 作者:行者123 更新时间:2023-11-29 03:44:05 24 4
gpt4 key购买 nike

提供更多细节:我正在使用 FBLoginView。我正在为我的 LoginViewController 使用 Storyboard和单独的 xib 文件。在我的应用程序中,我有一个 loginViewController,它是一个 FBLoginViewDelegate。还有一个 SettingsViewController,它是一个 FBUserSettingsDelegate。我的 LoginView 中有一个跳过按钮,以便以访客身份而不是 Facebook 用户登录。

现在我正在做的是:当应用程序打开时,我会显示一个演练 View ,其中包括底部的登录 View 。当用户使用 Facebook 登录按钮登录时,以下方法将通过 facebook sdk 自动执行:

- (void)loginViewFetchedUserInfo:(FBLoginView *)loginView
user:(id<FBGraphUser>)user;

在这个方法中,我正在执行到主视图的segue。

不过,人们也可以选择首先以访客身份登录,然后进入“设置”,他们仍然可以登录 Facebook。恰好执行了上面相同的方法!

但是我的转场无法被识别,因为我不再位于演练 View Controller 中。现在我位于设置 View Controller 中,它位于 Storyboard层次结构中完全不同的位置。

所以我的问题是:我如何知道这个方法是从哪个 View Controller 调用的?

我收到此警告: 尝试呈现不在窗口层次结构中的 View !

感谢您的帮助。

最佳答案

MyAppDelegate *tmpDelegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate];
id myCurrentController = tmpDelegate.myNavigationController.topViewController;
NSLog(@"%@", NSStringFromClass(myCurrentController.class));

希望这有帮助..

尝试一下:

+ (UIViewController*) topMostController
{
UIViewController *topController = [UIApplication sharedApplication].keyWindow.rootViewController;

while (topController.presentedViewController) {
topController = topController.presentedViewController;
}

return topController;
}

关于ios - 如何查找从哪个 View Controller 调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17967446/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com