当前位置: 首页 > 知识库问答 >
问题:

ios推送至navigationController以黑屏结束

单于高逸
2023-03-14

我试图通过在线文档将stripe应用程序实现到iOS应用程序中。到目前为止一切都很好,现在把paymentView推到我的导航控制器堆栈上,我得到了一个完全破碎的屏幕。虽然stripe视图有问题,但是当我没有登录(见下面的代码-没有给出标识)并且登录屏幕被推送时,它也是完全黑色的。这个视图不会有问题,因为如果我在这个视图之前从另一个视图推送登录视图,它的加载就可以了。

那么,为什么通过下面的buyButtonAction推动视图给我黑色/搞砸了屏幕?!我已经在这上面几个小时了...似乎没有什么工作。

一张照片:

the important code part:

@interface PaymentViewController ()

@end

@implementation PaymentViewController

@synthesize stripeCard = _stripeCard;
@synthesize stripeView;
@synthesize passedProductId;

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}

- (void)viewDidLoad
{


    [super viewDidLoad];
    // Do any additional setup after loading the view.
    self.stripeView = [[STPView alloc] initWithFrame:CGRectMake(15,20,290,55)
                                              andKey:@"pk_test_45mqixOu8N9S4lQ6cdn1OXBD"];
    self.stripeView.delegate = self;
    [self.view addSubview:self.stripeView];

}

电话:

-(void)buyButtonAction:(id)sender
{
    tokenClass *tokenObject = [tokenClass getInstance];
    NSLog(@"%@", tokenObject.token);
    if (tokenObject.token == nil) {
        LoginController *loginController = [[LoginController alloc] init];
        [self.navigationController pushViewController:loginController animated:YES];
    } else {
        NSLog(@"%@", tokenObject.token);
        CGPoint hitPoint = [sender convertPoint:CGPointZero toView:self.tableView];
        NSIndexPath *hitIndex = [self.tableView indexPathForRowAtPoint:hitPoint];
        PaymentViewController *payView = [[PaymentViewController alloc] init];
        payView.passedProductId = [[self.productData valueForKey:@"id"] objectAtIndex:hitIndex.row];
        NSLog(@"passing %@", payView.passedProductId);
        // push payment view
        payView.navigationItem.title = @"One-Click-Payment";
        [self.navigationController pushViewController:payView animated:YES];
    }
}

共有1个答案

柳英豪
2023-03-14

我们可以看到导航栏后面有一个视图。这是一个与iOS 7相关的问题。将此行添加到您的viewDidLoad

 if ([self respondsToSelector:@selector(edgesForExtendedLayout)])
    self.edgesForExtendedLayout = UIRectEdgeNone;

或者通过将64添加到y来更改您的self.stripeView框架:

CGRectMake(15,84,290,55)

有用链接:https://stackoverflow.com/a/18103727/1835155

 类似资料:
  • 我用的是Xcode 10。没有足够的空间更新到最新的Xcode。所以从苹果网站下载了它,并删除了旧的Xcode。为了腾出更多空间,我删除了所有的缓存、不可用的模拟器、派生数据和不需要的东西。之后安装了新的Xcode 11.3。 我的应用程序已成功构建。但模拟器只显示黑屏。 我试过了 “删除所有内容和设置” 而且还 默认写com。苹果核心模拟器。IndigoFramebufferServices帧缓

  • 我正在尝试使用AWS SNS来推送我的应用程序的通知。我已经使用用户信息和注册ID成功设置了各个endpointARN的注册。 我可以通过控制台发送单独的消息很好,但是我似乎不知道如何以编程方式发送它(JAVA) 控制台方式:(工作) http://docs.aws.amazon.com/sns/latest/dg/mobile-push-send-directmobile.html 通过JAVA

  • 我使用Xcode6.4,我的应用刺激器成功构建,然后启动屏幕,然后一个黑屏出现,它是堆栈。我尝试了不同的项目,同样的事情出现黑屏再次,但没有错误。

  • 我有一个和一个。当接收到广播时,两个活动都需要完成。但是,如果位于之上,下面的代码将导致黑屏。

  • 我有一个libgdx应用程序。当我使用libgdx 1.1.4和robovm 1.0.0时,它在Android和IOS上都运行良好。Beta版本。最近我升级到libgdx 1.6.3和robovm 1.4。现在Android版本工作正常,但IOS应用程序有一点小故障。问题是,如果我按下home按钮暂停应用程序,然后恢复它,我会得到一个黑屏。应用程序不会崩溃。我也没有在日志中看到任何东西。 有人知道

  • iOS 远程推送 之前曾经简要整理过iOS远程推送各个回调的一些内容 传送门 感觉脑子不够用了, 很多内容当时整理的不够详细清晰, 记忆也逐渐模糊 考虑很早的一些回调方法明显已经用不上了, 之前的部分文章也失去了回头再看的意义, 所以本篇文章主要以iOS 10.0 +为主, 重新梳理一下, 便于今后翻阅 若这篇文章有描述错误的地方, 还请及时指出 基础业务回调方法总结 一、 iOS 10 + 注册