1
votes

I am trying to build a pop over that displays a webView. So far, I have a button that when pressed, generates a pop over but the web view does not display. Using NSlog, I can see that the viewDidLoad method is firing. Here is the code I have so far:

In the popover.h file: @interface PopUpViewController : UIViewController

@property (strong, nonatomic) IBOutlet UIWebView *liveTimingPopUp;

@end

In the popover.m file:

#import "PopUpViewController.h"

@interface PopUpViewController ()

@end

@implementation PopUpViewController

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

- (void)viewDidLoad
{
    [super viewDidLoad];
    [self loadWebView];

}

- (void) loadWebView
{
    // Do any additional setup after loading the view.
    NSString *fullURL = @"www.google.com";
    NSURL *url = [NSURL URLWithString:fullURL];
    NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
    [_liveTimingPopUp loadRequest:requestObj];
    [self loadView];

    NSLog(@"PopUpView Fired");
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end

In the control view containing the button that generates the popover .h file:

#import <UIKit/UIKit.h>

@interface SecondViewController : UIViewController
{
    UIInterfaceOrientation intOr;
    //  APICallsViewController *pendingApiCallsController;

}
@property (strong, nonatomic) IBOutlet UIWebView *liveVideoPage;
- (IBAction)liveTimingButton:(id)sender;
@property (strong, retain) UIPopoverController *popOver; //declare UIPopOver so that you have an object to work with

-(void) loadVideo;
@end

In the control view containing the button that generates the popover .m file:

#import "SecondViewController.h"
#import "PopUpViewController.h"

@interface SecondViewController ()

@end

@implementation SecondViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    [self loadVideo];

}

- (void) loadVideo
{
    NSString *fullURL = @"http://192.168.130.230:1935/live/camera.stream/playlist.m3u8";
    NSURL *url = [NSURL URLWithString:fullURL];
    NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
    [_liveVideoPage loadRequest:requestObj];
}


-(void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
    intOr = self.interfaceOrientation;
    if (intOr == UIInterfaceOrientationPortrait)
    {
        NSLog(@"portrait");

        _liveVideoPage.frame = CGRectMake(10, 100, 600, 550);
    }
    else
    {
        NSLog(@"landscape");

        _liveVideoPage.frame = CGRectMake(200, 100, 600, 550);
    }
}


- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

- (IBAction)liveTimingButton:(id)sender
{
    if ([_popOver isPopoverVisible]) {
        [_popOver dismissPopoverAnimated:YES];
    }

    else
    {
    PopUpViewController *PUVC = [[PopUpViewController alloc]init];//instantiate ViewController for popOver's content
    _popOver = [[UIPopoverController alloc] /* create Popover*/initWithContentViewController:PUVC]; //fills popover with PopUpViewController
    _popOver.popoverContentSize = CGSizeMake(800, 250);
    [_popOver presentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES]; //specifies where the popover is coming from...the liveTiming Bar button
    }
}
@end

Any help would be greatly appreciated!

1

1 Answers

0
votes

where is the webview supposed to come from? The VC gets not passed a xib name.. so the outlet will never bet set