如果在tableviewcontroller中选择了单元格,我需要更新Firstviewcontroller中的图像。 我的应用程序导航库。 Firstviewcontroller包含按钮事件。点击按钮我正在射击tableview。在tableview我选择单元格并更新左侧的复选标记,它工作正常。我的问题是当同时选择单元格时我需要更新viewcontroller中的不同自定义图像以指示单元格被选中。 With ref.我在tableview内部选择了图像单元格。
here it is Appdelegate
@interface FertilityAppAppDelegate : NSObject <UIApplicationDelegate>
{
Fertility *updateImage;
}
@property (nonatomic, retain) Fertility *updateImage;
@implementation
@synthesize updateImage;
@interface Fertility : UIViewController
{
UIImageView *imgView;
FertilityAppAppDelegate *Appdelegate;
}
@property(nonatomic,retain) FertilityAppAppDelegate *Appdelegate;
@property (nonatomic, retain) UIImageView *imgView;
Viewcontroller for image update
@implementation Fertility
@synthesize imgView,Appdelegate;
- (void)viewDidLoad
{
[super viewDidLoad];
Appdelegate = (FertilityAppAppDelegate*)[[UIApplication sharedApplication] delegate];
}
- (void)changeImg:(UIImage*)image
{
imgView.image = image;
}
- (void)assignObjToTableViewClass
{
Appdelegate.updateImage = self;
}
Tableview controller
@interface Menstruation : UITableViewController
{
FertilityAppAppDelegate *Appdelegate;
}
@property (nonatomic, retain) FertilityAppAppDelegate *Appdelegate;
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
UIImage *image = [UIImage imageNamed:@"bar.png"];
[Appdelegate.updateImage changeImg:image];
selectedRow = indexPath.row;
[self.tableView reloadData];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
{
cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
[[cell imageView] setImage:[UIImage imageNamed:@"Tick.png"]];
}
[[cell imageView] setHidden:YES];
if (indexPath.row == selectedRow)
{
[[cell imageView] setHidden:NO];
}
NSString *cellValue = [MenstruationArray objectAtIndex:indexPath.row];
cell.text = cellValue;
return cell;
}
如何在Firstviewcontroller中显示。上图是按钮底部带红色条的按钮 当我在Firstviewcontroller中点击此按钮为月经表视图触发时,同时我需要将图像栏更新为Firstviewcontroller。
答案 0 :(得分:0)
如果要更改另一个视图控制器中的图像,则需要使用didSelectRowAtIndexPath
方法分配图像。
为此您需要访问特定的视图控制器对象(已经使用的不是新对象)。
对于这些类型的事情,没有教程。
我会发一些代码,请按照这样说。
首先,您必须在AppDelegateClass中声明ImgViewController类对象。然后只有你可以使用。
然后使用以下代码。我已经写了这段代码用于理解。
@interface ImgViewController : UIViewController{
UIImageView *imgView;
AppDelegateClass *delegate;
}
@implementation ImgViewController
- (void)viewDidLoad{
delegate = (AppDelegateClass*)[[UIApplication sharedApplication]delegate];
delegate.imageViewControllerObj = self; // Or you can call the method
//[self assignObjToTableViewClass];
}
- (void)changeImg:(UIImage*)image{
imgView.image = image;
}
- (void)assignObjToTableViewClass{
delegate.imageViewControllerObj = self;
}
@end
@interface TableViewControllerClass : UIViewController{
AppDelegateClass *delegate;
}
@implementation TableViewControllerClass
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
UIImage *image = //Give what ever image you want to change
[delegate.imageViewControllerObj changeImg:image];
}
@end
此致
萨蒂亚