Geo*_*rds 7 .net c# facebook xamarin.ios xamarin
我正在使用Facebook Auth SDK,以及Xamarin Forms C#示例.但是,Facebook SDK已经对该方法进行了折旧,并将其替换fromViewController
为在构造函数中添加变量的方法.我对Xamarin中的ViewControllers概念并不是特别熟悉,或者确实使用这个代码,因为它来自一个样本,所以有没有办法测量当前的ViewController?
我已经看到了一些.net示例,NSArray *viewContrlls=[[self navigationController] viewControllers];[viewContrlls lastObject];
但是,这种方法似乎不适用于Xamarin,因为self
它不包含navigationControllers的定义.
或者,是否有任何方法可以使用示例代码轻松计算出当前ViewController的哪个变量?
xle*_*eon 12
接受的答案不会给你当前的视图控制器,如果它在父级的堆栈中UINavigationController
,所以我想出了以下内容:
public static UIViewController GetTopViewController()
{
var window = UIApplication.SharedApplication.KeyWindow;
var vc = window.RootViewController;
while (vc.PresentedViewController != null)
vc = vc.PresentedViewController;
if (vc is UINavigationController navController)
vc = navController.ViewControllers.Last();
return vc;
}
Run Code Online (Sandbox Code Playgroud)
Jas*_*son 10
执行此操作的最佳方法是传入对调用Auth方法的ViewController的引用.
但是,您也可以尝试这种方法(由AdamMemp在Xamarin论坛上提供)
var window= UIApplication.SharedApplication.KeyWindow;
var vc = window.RootViewController;
while (vc.PresentedViewController != null)
{
vc = vc.PresentedViewController;
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6625 次 |
最近记录: |