【问题标题】:Stripe iOS change back button titleStripe iOS 更改返回按钮标题
【发布时间】:2019-03-29 15:15:57
【问题描述】:

有办法改变 Stripe 取消按钮的标题吗?

我需要把它改成“Back”,其实“Back”是一个更好的词来描述它的行为。

我是这样介绍控制器的:

let customerContext = STPCustomerContext(keyProvider: StripeClient.shared)
let paymentMethodsViewController = STPPaymentMethodsViewController(configuration: STPPaymentConfiguration.shared(), theme: STPTheme.default(), customerContext: customerContext, delegate: self as STPPaymentMethodsViewControllerDelegate)
let navigationController = UINavigationController(rootViewController: paymentMethodsViewController)
present(navigationController, animated: true)

【问题讨论】:

  • 你如何展示这个视图控制器?
  • 添加更多细节和代码
  • 抱歉,我已经更新了我的问题。
  • 推送而不是呈现
  • 您正在创建一个新的UINavigationController,其中STPPaymentMethodsViewControllerrootViewController,而不是您当前的ViewController 应该是rootViewController,而STPPaymentMethodsViewController 应该使用@ 压入堆栈987654329@

标签: ios swift xcode stripe-payments


【解决方案1】:

转到条带文件中的 STPCoreViewController.m。

只需替换此方法

- (void)commonInitWithTheme:(STPTheme *)theme {
_theme = theme;

if (![self useSystemBackButton]) {
    self.cancelItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel
                                                                    target:self
                                                                    action:@selector(handleCancelTapped:)];

    self.stp_navigationItemProxy.leftBarButtonItem = self.cancelItem;
    }
}

- (void)commonInitWithTheme:(STPTheme *)theme {
_theme = theme;

if (![self useSystemBackButton]) {

    self.cancelItem = [[UIBarButtonItem alloc]
                                   initWithTitle:@"Back"
                                   style: UIBarButtonItemStylePlain
                                   target:self
                                   action:@selector(handleCancelTapped:)];

    self.stp_navigationItemProxy.leftBarButtonItem = self.cancelItem;
    }
}

【讨论】:

    【解决方案2】:
    override func pushViewController(_ viewController: UIViewController, animated: Bool) {
        // first
        let backItem = UIBarButtonItem()
        backItem.title = "Back"
        self.viewControllers.last?.navigationItem.backBarButtonItem = backItem
        // then
        super.pushViewController(viewController, animated: animated)
    
    }
    

    【讨论】:

    • 解释更多关于发生了什么,考虑添加更多上下文
    猜你喜欢
    • 2018-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-17
    • 2015-01-04
    相关资源
    最近更新 更多