【问题标题】:Draw a custom view inside a view with Nav and Tab使用 Nav 和 Tab 在视图内绘制自定义视图
【发布时间】:2023-03-15 08:55:01
【问题描述】:

我按照 raywenderlich 教程创建 PDF。 http://www.raywenderlich.com/6818/how-to-create-a-pdf-with-quartz-2d-in-ios-5-tutorial-part-2。我需要顶部的 NavBar 和底部的 Tab。我在底部得到标签,但在顶部缺少导航栏。 PDF 接管了底部标签栏顶部的所有内容。非常感谢任何帮助。

- (void)viewDidLoad
{
     NSString* fileName = [self getPDFFileName];

     NSMutableDictionary *dataDict = [NSMutableDictionary new];
     NSNumber *tripId = (NSNumber *)[Helper getValueForKeyFromGlobalDictionary:TRIP_ID];
     [dataDict setValue:[self retrieveTimings:[tripId intValue]] forKey:NEWTRIP_MO];
     [dataDict setValue:[self retrieveStops:[tripId intValue]] forKey:TIME_MO];
     [dataDict setValue:[self getCompanyInfo:[tripId intValue]] forKey:COMPANY_MO];
     [dataDict setValue:[self getTripInfo:[tripId intValue]] forKey:TRIP_MO];
     [dataDict setValue:[self getDriverInfo:[tripId intValue]] forKey:DRIVERS_MO];
     [dataDict setValue:[self getLoadInfo:[tripId intValue]] forKey:LOAD_MO];
     [PDFRenderer drawPDF:fileName withData:dataDict];
     [self showPDFFile];
     [super viewDidLoad];

     NSLog(@"Testing");
 }

-(void)showPDFFile
{
    NSString* fileName = @"Invoice.PDF";

    NSArray *arrayPaths =
    NSSearchPathForDirectoriesInDomains(
                                    NSDocumentDirectory,
                                    NSUserDomainMask,
                                    YES);
     NSString *path = [arrayPaths objectAtIndex:0];
     NSString* pdfFileName = [path stringByAppendingPathComponent:fileName];

     UIWebView* webView = //[[UIWebView alloc] initWithFrame:view2.frame];
     [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];

     NSURL *url = [NSURL fileURLWithPath:pdfFileName];
     NSError *error = [[NSError alloc] init];
     NSLog(@"Is resource reachable: %d", [url          checkResourceIsReachableAndReturnError:&error]);
     NSURLRequest *request = [NSURLRequest requestWithURL:url];
     [webView setScalesPageToFit:YES];
     [webView loadRequest:request];

     [self.view addSubview:webView];
     //[self.view insertSubview:webView atIndex:3];
}

【问题讨论】:

  • 我将 [self.view addSubView:webView] 更改为 [self.view insertSubview:webView atIndex:0];我看到导航栏和选项卡,但它缺少包含 PDF 的 WebView。这是一个空白视图。

标签: ios uiview uistoryboard


【解决方案1】:

您可以在 ViewDidLoad 中加载 webView。

- (void)viewDidLoad
{
    [super viewDidLoad];



    NSString* pdfFileName = [self getPDFFileName];

 NSMutableDictionary *dataDict = [NSMutableDictionary new];
     NSNumber *tripId = (NSNumber *)[Helper getValueForKeyFromGlobalDictionary:TRIP_ID];
     [dataDict setValue:[self retrieveTimings:[tripId intValue]] forKey:NEWTRIP_MO];
     [dataDict setValue:[self retrieveStops:[tripId intValue]] forKey:TIME_MO];
     [dataDict setValue:[self getCompanyInfo:[tripId intValue]] forKey:COMPANY_MO];
     [dataDict setValue:[self getTripInfo:[tripId intValue]] forKey:TRIP_MO];
     [dataDict setValue:[self getDriverInfo:[tripId intValue]] forKey:DRIVERS_MO];
     [dataDict setValue:[self getLoadInfo:[tripId intValue]] forKey:LOAD_MO];
     [PDFRenderer drawPDF:pdfFileName withData:dataDict];

    UIWebView* webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 40, 320, 440)];

    NSURL *url = [NSURL fileURLWithPath:pdfFileName];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    [webView setScalesPageToFit:YES];
    [webView loadRequest:request];



    [self.view addSubview:webView];

    self.navigationController.navigationBarHidden=NO;
    // Do any additional setup after loading the view from its nib.
}

它对我有用。希望对你有帮助

【讨论】:

  • 它仍然无法正常工作。它显示页眉和页脚,但视图为空。
  • View is Emply 表示文件名和文件路径有问题。使用 NSLog 检查路径和文件名,检查生成的路径 pdf 与否。
猜你喜欢
  • 2012-09-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-27
  • 2016-06-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多