相关疑难解决方法(0)

如何在iOS 7上的UINavigationController中禁用后滑动手势

在iOS 7中,Apple添加了一个新的默认导航行为.您可以从屏幕的左边缘滑动以返回导航堆栈.但在我的应用程序中,此行为与我的自定义左菜单冲突.那么,是否可以在UINavigationController中禁用这个新手势?

objective-c uinavigationcontroller uigesturerecognizer ios ios7

320
推荐指数
10
解决办法
14万
查看次数

UINavigationController interactivePopGestureRecognizer在iOS7中工作异常

在iOS7中,我们有一个新的"向左滑动"手势,这是一个非常有用的功能,但现在我有一个问题.

我使用此代码自定义后退按钮UINavigationBar.

self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:view];

但这将禁用"从左向右滑动"手势,因此我使用以下代码来保持手势的启用.

self.navigationController.interactivePopGestureRecognizer.delegate = self

然后,我发现手势工作异常,如果当前的ViewController有一个tableView,当tableView滚动时,手势将不会被触发.现在手势无法轻易触发,是否有某种方法可以修复它?

iphone objective-c uinavigationbar ios ios7

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

在Swift中,我如何拥有一个具有内部和外部委托的UIScrollView子类?

我正在进行子类化UIScrollView以添加一些功能,例如双击缩放和用于图库目的的图像属性.但是为了做图像部分我的子类必须是它自己的委托并实现viewForZoomingInScrollView.

但是当有人使用我的滚动视图子类时,他们可能也希望获得委托通知以查看scrollViewDidScroll或者您有什么.

在Swift中,我如何获得这两个?

delegates uiscrollview swift

12
推荐指数
2
解决办法
6263
查看次数

如何在SwiftUI中返回与UIKit中相同的行为(interactivePopGestureRecognizer)

交互式弹出手势识别器应允许用户在滑过屏幕的一半以上(或这些行周围的内容)时返回导航堆栈中的上一个视图。在SwiftUI中,如果滑动距离不够远,手势不会被取消。

SwiftUI: https ://imgur.com/xxVnhY7

UIKit: https //imgur.com/f6WBUne


题:

使用SwiftUI视图时能否获得UIKit行为?


尝试次数

我试图将UIHostingController嵌入UINavigationController内,但其行为与NavigationView完全相同。

struct ContentView: View {
    var body: some View {
        UIKitNavigationView {
            VStack {
                NavigationLink(destination: Text("Detail")) {
                    Text("SwiftUI")
                }
            }.navigationBarTitle("SwiftUI", displayMode: .inline)
        }.edgesIgnoringSafeArea(.top)
    }
}

struct UIKitNavigationView<Content: View>: UIViewControllerRepresentable {

    var content: () -> Content

    init(@ViewBuilder content: @escaping () -> Content) {
        self.content = content
    }

    func makeUIViewController(context: Context) -> UINavigationController {
        let host = UIHostingController(rootView: content())
        let nvc = UINavigationController(rootViewController: host)
        return nvc
    }

    func updateUIViewController(_ uiViewController: UINavigationController, …
Run Code Online (Sandbox Code Playgroud)

ios swift swiftui

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

添加leftBarButtonItem时,后滑动手势不起作用

这里是一个ViewControllerA推一个ViewControllerB,并在ViewControllerBleftBarButtonItem设置如下:

self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:self action:@selector(backBtnClicked:)];
Run Code Online (Sandbox Code Playgroud)

设置后leftBarButtonItem,后退滑动手势不起作用.是否可以保持滑动手势?

objective-c uibarbuttonitem backbarbuttonitem ios7

7
推荐指数
1
解决办法
2419
查看次数

如何覆盖self.navigationItem.backBarButtonItem动作?

我想覆盖self.navigationItem.backBarButtonItem目标行动,

我试过了:

UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@"Back"
                                                                   style:UIBarButtonItemStyleBordered
                                                                  target:self
                                                                  action:@selector(backButtonOverrideAction:)];
[self.navigationItem setLeftBarButtonItem:backButton];
Run Code Online (Sandbox Code Playgroud)

它工作,但我想使用默认箭头:

在此输入图像描述

我也尝试过:

UIBarButtonItem *backButton = self.navigationItem.backBarButtonItem;
[backButton setTarget:self];
[backButton setAction:@selector(backButtonOverrideAction:)];
Run Code Online (Sandbox Code Playgroud)

但不幸的是它不起作用..你知道怎么做吗?

objective-c ios

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