2013-10-26 2 views
1

Я просто добавил новый интерфейс UIWebView, и он, похоже, не появляется. Я здесь довольно новый, так что это может быть очень простая ошибка.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 и как я называю эту точку зрения?

ответ

0

Если вы используете файл острия, чтобы определить ваш GuideViewController, используйте

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 подключен (управление + перетаскивание из объекта UIWebView в файле nib)

Вы также можете программно добавить 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; 
} 
+0

Спасибо, но я попробовал и программно получить эту ошибку при добавлении guideviewcontroller: присваивание «ид 'от несовместимого типа' GuideViewController * _strong ' – user2913669

+0

, и когда я пытаюсь сделать это с помощью раскадровки, я получаю эту ошибку: http://i.imgur.com/mgN1TOz.png – user2913669

+0

Наконец, я попробовал добавить свой код с тех пор, м, используя раскадровку, но я получаю эту ошибку: http://i.imgur.com/GKV5oyM.png – user2913669

Смежные вопросы