小编Ari*_*lSD的帖子

如何从 SwiftUI 推送到现有的 UINavigationController 堆栈?

我们正在推动SwiftUI嵌入在土地中的视图,UIHostingViewController如下UIKit所示:

首先制作UIViewController

    func hostingController() -> UIViewController {
    let swiftUIView = swiftUIView(viewModel: viewModel(data: [Data, Data, Data]))
    return UIHostingController(rootView: swiftUIView)
}
Run Code Online (Sandbox Code Playgroud)

然后将其压入UINavigationView堆栈:

[self.navigationController pushViewController:hostingViewController animated:YES];
Run Code Online (Sandbox Code Playgroud)

这让我们进入了SwiftUI环境。但是,如果我们的SwiftUI环境有自己的带有NavigationView和的导航堆栈NavigationLink,则原始navigationBar的后退按钮只能导航回原始呈现UIViewController

有没有办法将SwiftUI嵌入的视图推NavigationView送到现有UINavigationController堆栈上?

到目前为止,我们唯一的想法是UIHostingViewController为每个新SwiftUI屏幕创建一个新屏幕,并通过某种委托方法将其推送到堆栈上。

我们正在寻找的是这样的:

UINavigationStack: [UIViewController -> UIViewController -> SwiftUIView -> SwiftUIView]
Run Code Online (Sandbox Code Playgroud)

中的后退<箭头navigationBar将按预期运行。

如果我们可以进一步澄清,请告诉我们!

uinavigationcontroller swift swiftui swiftui-navigationlink swiftui-navigationview

8
推荐指数
1
解决办法
2291
查看次数

什么时候 navigationAction.navigationType == .linkActivated?

在 WKWebView 中,每次我点击 URL 时,navigationType都是.other. 什么时候navigationType等于.linkActivated

webkit ios swift wkwebview

6
推荐指数
1
解决办法
2836
查看次数

我怎么知道谁在Xcode中调用该方法?

Xcode是否有办法显示方法的调用函数?我想知道类中方法的所有调用函数.解决方案是在项目中找到方法,但有时不同的类具有相同名称的方法 - 这可以找到我们不寻找的方法.

许多其他IDE都具有此功能,例如Visual C++ 2003/2005/2008,Eclipse ......

你能在XCode中做到这一点吗?

xcode

4
推荐指数
1
解决办法
3274
查看次数

如何使用 UIKeyCommand

当用户按下硬件键盘上的向下箭头时,我尝试在表视图中选择一行。现在,我只是想打印日志,但似乎无法让它工作。根据其他类似问题的答案,这是我到目前为止所得到的:

- (NSArray *)keyCommands {
UIKeyCommand *downArrowKeyCommand = [UIKeyCommand keyCommandWithInput:UIKeyInputDownArrow
                                                        modifierFlags:0
                                                               action:@selector(hardwareKeyboardDownArrowPressed)];

return @[downArrowKeyCommand];
}

- (BOOL)canBecomeFirstResponder {
return YES;
}

- (void)hardwareKeyboardDownArrowPressed {

NSLog(@"Down arrow pressed on external keyboard");

}
Run Code Online (Sandbox Code Playgroud)

感谢所有帮助!

objective-c uikeycommand

4
推荐指数
1
解决办法
1685
查看次数

Xcode 8 UI测试需要很长时间

我正在为XCode 8编写一个非常复杂的应用程序的UI测试.我发现了几个问题,其中一个问题是我运行的每个测试都需要几分钟.

我正在运行的特定测试的流程甚至都不复杂.

我得到许多"等待app闲置"的消息.

有谁知道为什么测试需要这么长时间才能运行,或者你对我如何加快它们有任何建议?WWDC演示基本上是即时的,但这是一个非常简单的应用程序.

这是我看到的一个例子,以及需要多长时间.(测试还在运行!)

t =   504.16s         Wait for app to idle
t =   625.29s         App animations complete notification not received, will attempt to continue.
t =   625.30s         Synthesize event
t =   625.67s         Wait for app to idle
Run Code Online (Sandbox Code Playgroud)

谢谢!

更新:当我与应用程序轻微交互时,同时保持我需要的元素,例如通过拉取tableview,测试继续.

xcode xcode-ui-testing xcode8

3
推荐指数
2
解决办法
1978
查看次数

如何使用 WKWebView 读取页面的 MIME 类型?

我的应用程序使用 WKWebView 导航到移动网页。我正在寻找的是如何检查网页是否可下载(例如 .csv 或 .pdf)。现在,我正在做一些 hacky 来读取 URL,但我知道必须有一种更优雅的方式。

我正在使用 WKNavigationDelegate - 谁能提供一些有关如何判断页面是否提供可下载内容的见解?或者我如何阅读一种“文本/csv”?

如果我能澄清一下,请告诉我。

xcode webkit ios swift wkwebview

3
推荐指数
2
解决办法
3697
查看次数

什么是*__强*意味着什么?

有一种方法:

- (void)doSmth:(NSString *__strong*)str {
    NSLog(@"%@", *str);
}
Run Code Online (Sandbox Code Playgroud)

__strong遵循方法参数的类是什么意思?为什么有两个星号?

objective-c

2
推荐指数
1
解决办法
1463
查看次数