相关疑难解决方法(0)

iPhone - 如何找到最顶层的视图控制器

我现在遇到了几个案例,它们可以方便地找到"最顶层"的视图控制器(负责当前视图的控制器),但还没有找到办法.

基本上挑战是这样的:假设一个人在一个不是视图控制器(或视图)的类中执行[并且没有活动视图的地址]并且还没有传递最顶层视图控制器的地址(或者说,导航控制器的地址),是否可以找到该视图控制器?(如果是这样,怎么样?)

或者,如果失败了,是否有可能找到最顶层的视图?

objective-c uiviewcontroller uikit uiview ios

240
推荐指数
17
解决办法
18万
查看次数

尝试显示*on*,其视图不在窗口层次结构中

我正在尝试在我的app委托中创建一个模态视图控制器(我创建了一个名为showLoginView的函数).但每当我尝试调用它时,我会在XCode中收到警告:

Warning: Attempt to present <PSLoginViewController: 0x1fda2b40> on <PSViewController: 0x1fda0720> whose view is not in the window hierarchy!
Run Code Online (Sandbox Code Playgroud)

这是方法代码:

- (void)showLoginView
{
    PSLoginViewController *loginViewController = [[UIStoryboard storyboardWithName:@"MainStoryboard" bundle:NULL] instantiateViewControllerWithIdentifier:@"PSLoginViewController"];
    [self.window.rootViewController presentViewController:loginViewController animated:NO completion:nil];
}
Run Code Online (Sandbox Code Playgroud)

如何将视图添加到窗口层次结构?或者也许我做错了什么?

cocoa-touch objective-c ios ios6

36
推荐指数
5
解决办法
5万
查看次数

Swift 3尝试显示其视图不在窗口层次结构中

这个问题已被多次询问,但即使在尝试了大部分可能的事情后,我仍然无法找到适合我的解决方案.这是错误消息.

警告:尝试在视图不在窗口层次结构中的<0x7f8f29e17590>上显示!

注意:我没有使用任何导航控制器.

我只是模态地呈现一个视图控制器,我有一个按钮,用于linkedIn注册.但每次我点击"确认"按钮时都会出现此错误,但我无法看到新的linkedIn对话框,尽管它在其他类中工作正常.

大多数解决方案建议在viewDidAppear中处理按钮单击已经尝试过,但它不起作用.

我正在使用此代码打开linkedIn注册表单

linkedinHelper.authorizeSuccess({ [unowned self] (lsToken) -> Void in

        print("success lsToken: \(lsToken)")
        self.requestProfile()
        }, error: { [unowned self] (error) -> Void in

            print("Encounter error: \(error.localizedDescription)")
        }, cancel: { [unowned self] () -> Void in

            print("User Cancelled!")
    })
Run Code Online (Sandbox Code Playgroud)

xcode ios swift

5
推荐指数
1
解决办法
6770
查看次数

标签 统计

ios ×3

objective-c ×2

cocoa-touch ×1

ios6 ×1

swift ×1

uikit ×1

uiview ×1

uiviewcontroller ×1

xcode ×1