2015-07-06 21 views
0

我有我的ViewController,MyWebViewController,我使用在xib中創建的webView.h文件有iOS - ViewController的類型MyCustomViewController

@interface MyWebViewController : UIViewController 
@property (nonatomic,strong) IBOutlet UIWebView* webView; 

.m文件,

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    [self.webView loadRequest:[NSURLRequest requestWithURL:[[NSURL alloc] initWithString:@"http://www.google.com"]]]; 
} 

這裏是我的廈門國際銀行enter image description here

它的工作非常適合我。

後來我創建了另一個ViewController,類型MyWebViewController

#import "MyWebViewController.h" 

@interface RootViewController : MyWebViewController 

預期的MyViewViewController的廈門國際銀行加載,但webView沒有加載到廈門國際銀行。我花了更多時間進行調試。

後來,我從xib中刪除了webView並以編程方式創建它。

self.webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 320, 441)]; 
self.webView.delegate = self; 
[self.webView loadRequest:[NSURLRequest requestWithURL:[[NSURL alloc] initWithString:@"http://www.google.com"]]]; 
[self.view addSubview:self.webView]; 

以編程方式創建webView會給出預期的輸出。

我需要澄清一點,爲什麼我的webView未加載,它是否在xib中創建,並且在以編程方式創建時工作正常?

回答

0

這是由於iOS9視圖加載行爲的變化。開發人員應該更新-viewWillLayoutSubviews-viewDidAppear中的UI元素。

1

在你RootViewController的,你怎麼叫:

- (void)viewDidLoad { 
    [super viewDidLoad]; 
} 

這樣,它會引發基類的功能和webView的將加載果然。你忘了把它放在MyWebViewController

編輯:

原因self.webView未在派生類得到負載是因爲它被標記IBOutlet所以它需要從UIViewxib和派生類我們預分配元件的參考不是不安裝基本視圖文件,例如,MyWebViewController.xib。所以self.webView出現nil,函數調用nil默默無視。所以,一旦你通過代碼完成它獨立於xib文件並且工作。

希望它有幫助!

+0

我在兩個viewControllers中添加。但沒有改變。 – iOS

+0

@iOS,請檢查我的更新。 – NeverHopeless