1

新しい UIWebView を追加したところ、表示されないようです。私はここではかなり新しいので、これは非常に単純なエラーである可能性があります。

ストーリーボードを使用してビューを作成し、それを GuideViewController.h にドラッグしました。

これは私の GuideViewController.h です

#import <UIKit/UIKit.h>

@interface GuideViewController : UIViewController
@property (weak, nonatomic) IBOutlet UIWebView *newsWebView;

@end

これは私の GuideViewController.m です

#import "GuideViewController.h"

@interface GuideViewController ()

@end

@implementation GuideViewController


@synthesize newsWebView;

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

- (void)viewDidLoad
{
    [super viewDidLoad];
    NSURL *newsURL = [NSURL URLWithString:@"http://www.yahoo.com"];
    NSURLRequest *newsRequest = [NSURLRequest requestWithURL:newsURL];
    [newsWebView loadRequest:newsRequest];
}

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

@end

これは、アプリのデリゲートにビューを追加するために使用しているものです。すでにサイドバー メニューが追加されています。

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{

    VidViewController *vidViewController = [[VidViewController alloc] init];

    GuideViewController *newsWebView = [[GuideViewController alloc] init];
    UINavigationController *navController1 = [[UINavigationController alloc] initWithRootViewController:vidViewController];

[self.window setRootViewController:navController1];

    SelectVideo1 *selectVideo1 = [[SelectVideo1 alloc] initWith:@"Test"];
    //[self.navController pushViewController:selectVideo1 animated:YES];

    SelectVideo1 *selectVideo2 = [[SelectVideo1 alloc] initWith:@"Latest News"];

    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    UIStoryboard *tabStoryBoard = [UIStoryboard storyboardWithName:@"TabStoryboard" bundle:nil];
    UIStoryboard *navStoryBoard = [UIStoryboard storyboardWithName:@"NavStoryboard" bundle:nil];
    UINavigationController *navController = [navStoryBoard instantiateViewControllerWithIdentifier:@"Nav Controller"];
    UITabBarController *tabController = [tabStoryBoard instantiateViewControllerWithIdentifier:@"Tab Controller"];


    ViewController *redVC, *greenVC;
    redVC = [[ViewController alloc] init];
    greenVC = [[ViewController alloc] init];



    RootController *menuController = [[RootController alloc]
                                      initWithViewControllers:@[navController, selectVideo1, selectVideo2, tabController, newsWebView]
                                      andMenuTitles:@[@"Test", @"Videos", @"Latest News", @"Walkthroughs", @"Official News"]];
    self.window.rootViewController = menuController;
    self.window.backgroundColor = [UIColor whiteColor];
    [self.window makeKeyAndVisible];
    return YES;
}



@end

ビューはメニュー バーに表示されますが、クリックしても何も起こりません。問題は私の appdelegate にあると思いますが、どのようにビューを呼び出すのですか?

4

1 に答える 1

0

GuideViewController を定義するために nib ファイルを使用している場合は、

GuideViewController *newsWebView = [[GuideViewController alloc] initWithNibName:@"Insert_Nib_Name_Here" bundle:nil];

ストーリーボードで GuideViewController を定義する場合は、使用します

UIStoryboard *navStoryBoard = [UIStoryboard storyboardWithName:@"NavStoryboard" bundle:nil];
GuideViewController *newsWebView = [navStoryBoard instantiateViewControllerWithIdentifier:@"Insert_Guide_Controller_Name_Here"];

それでもうまくいかない場合は、IBOutlet UIWebView が接続されていることを確認してください (nib ファイルの UIWebView オブジェクトからコントロール + ドラッグ)。

プログラムで UIWebView を追加することもできます。

GuideViewController.h では、おそらく UIWebViewDelegate プロトコルに準拠する必要があります。UIWebView の機能を制御するメソッドを実装する

@interface GuideViewController : UIViewController <UIWebViewDelegate>

GuideViewController.m で...

- (GuideViewController*)init
{
    self = [super init];
    if (self) {
        //Adjust the frame accordingly if you don't want it to take up the whole view
        self.newsWebView = [[UIWebView alloc] initWithFrame:self.view.frame];
        self.newsWebView.delegate = self;
        [self.view addSubview:self.newsWebView];
    }
    return self;
}
于 2013-10-27T00:34:51.963 に答える