我正在使用兩個視圖控制器:RegisterViewController
和Exp
。對象在iOS中從一個viewController返回到另一個時返回null
RegisterViewController
包含一個IBOutlet按鈕,並且該按鈕的值在第一次加載視圖時設置。但我需要從另一個視圖控制器(Exp
)更改按鈕圖像。
我該怎麼做?
#import <UIKit/UIKit.h>
@interface RegisterViewController : UIViewController
@property (nonatomic,strong)IBOutlet UIButton *but;
-(void)Image:(UIImage*)img;
@end
@implementation RegisterViewController
@synthesize but;
- (void)viewDidLoad
{
[super viewDidLoad];
NSLog(@"but :%@",self.but);//<UIButton: 0xa581ed0; frame = (119 270; 62 62); opaque = NO; autoresize = RM+BM; layer = <CALayer: 0xa581b50>>
}
-(void)Image:(UIImage*)img
{
NSLog(@"but:%@",self.but);// returns null Value
[self.profileBut setBackgroundImage:img forState:UIControlStateNormal];//I can’t change image by this line.What is the problem?
}
@end
#import <UIKit/UIKit.h>
#import "RegisterViewController.h"
@interface Exp : UIViewController
@property (nonatomic,strong)RegisterViewController *regCont;
@end
@implementation Exp
@synthesize regCont;
-(void)dissmissView
{
self.regCont = [[RegisterViewController alloc]init];
[regCont Image:[UIImage imageNamed:@"cute_cat_1.jpg"]];
[self dismissViewControllerAnimated:YES completion:nil];
}
你並不需要爲''RegisterViewController新的對象,但是,使用的是之前創建的同一個實例。或者你需要實現代表。 –
是很明顯,因爲如果你的視圖不在屏幕上,IBOutlets不會引用任何UIComponents。您可以在ViewDidLoad或ViewWillAppear中設置圖像 – Suryakant
@prashant如何從Exp訪問我的RegisterViewController方法? – IKKA