我有兩個視圖控制器:BSViewController
和BSotherViewController
。 BSViewController
上有一個按鈕,可以跳到BSotherViewController
。這部分工作正常,當我在模擬器上運行時,我可以看到一個VC,然後看到「其他」VC。但是我在BSotherViewController
的-viewDidLoad
中有一個NSLog(@"other");
,它沒有顯示在控制檯中。在控制檯中顯示的BSViewController
的-viewDidLoad
中的類似NSLog(@"other");
。我懷疑問題在於缺少IBAction
,但我無法確定它應該到達的位置以及它應該如何在故事板中鏈接。視圖確實加載但不是viewDidLoad
BSViewController.h
#import <UIKit/UIKit.h>
@interface BSViewController : UIViewController
@property (nonatomic) NSInteger number;
@end
BSViewController.m
#import "BSViewController.h"
@interface BSViewController()
@end
@implementation BSViewController
@synthesize number;
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
self.number = 25;
NSLog(@"number: %d", self.number);
}
@end
BSotherViewController.h
#import <UIKit/UIKit.h>
@interface BSotherViewController : UIViewController
@property (nonatomic) NSInteger anumber;
@end
BSotherViewController.m
#import "BSotherViewController.h"
#include "BSViewController.h"
@interface BSotherViewController()
@end
@implementation BSotherViewController
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (void)viewDidLoad
{
NSLog(@"other number:");
[super viewDidLoad];
// Do any additional setup after loading the view.
BSViewController *view = [[BSViewController alloc] init];
self.anumber = view.number;
NSLog(@"other number: %d", self.anumber);
}
嘿零,一個簡單的解決辦法是隻使用viewWillAppear中或ViewDidAppear ,不保證每次都會調用ViewDidLoad ...它很可能在BSViewController中被調用,因爲當你啓動應用程序到模擬器時,它會運行它新鮮的,因此需要加載視圖。有時使用模態段和事情,它不是必須調用viewDidLoad .... – 2013-03-11 21:27:43