我有一個數組問題,並在視圖之間傳遞圖像,我希望得到一些幫助! 所以背景是我有:無法將圖像分配給ArrayView中的imageView,但可以將圖像分配給來自UIImage變量的imageView
•RootViewController的(它處理我的表視圖)
•CommunicationViewController它處理所選擇的元件的細節從表
•SelectSlideViewController其顯示點擊的圖像從CommunicationViewController,並允許用戶選擇從相機膠捲
一個不同所以問題:
•在CommunicationViewConroller,我有以下的代碼,如果用戶點擊一個按鈕:
- (IBAction) selectSlide:(id) sender
{
if(self.selectSlideView == nil)
{
SelectSlideViewController *viewController = [[SelectSlideViewController alloc]
initWithNibName:@"SelectSlideViewController" bundle:[NSBundle mainBundle]];
self.selectSlideView = viewController;
[viewController release];
}
[self.navigationController pushViewController:self.selectSlideView animated:YES];
self.selectSlideView.cmn = cmn;
self.selectSlideView.title = cmn.name;
self.selectSlideView.imageView.image = self.myImage5;
}
而且上面的代碼工作,如果,例如,我點擊按鈕5,因爲它集圖像5到視圖在「SelectSlideViewController」中。
但是,我想要有多個按鈕使用相同的「selectSlide」動作 - 爲此,我需要確定哪個按鈕被按下,然後將正確的圖像從數組中分配給「SelectSlideViewController」 (或一系列笨重的if-else語句)。
•所以我修改後的代碼如下,但它不與陣列工作 - 任何想法?:
- (IBAction) selectSlide:(id) sender
{
if(self.selectSlideView == nil)
{
SelectSlideViewController *viewController = [[SelectSlideViewController alloc]
initWithNibName:@"SelectSlideViewController" bundle:[NSBundle mainBundle]];
self.selectSlideView = viewController;
[viewController release];
}
NSUInteger tmpInt = -1;
tmpInt = [buttonArray indexOfObject:sender];
[self.navigationController pushViewController:self.selectSlideView animated:YES];
self.selectSlideView.cmn = cmn;
self.selectSlideView.title = cmn.name;
NSLog(@"The int was %d",tmpInt);
NSLog(@"This is the image array size %d ",[imageArray count]);
If(tmpInt >-1 && tmpInt <9)
{
self.selectSlideView.imageView.image = [imageArray objectAtIndex:tmpInt];
}
/** this code works, but is a bit clunky:
if(tmpInt == 0)
self.selectSlideView.imageView.image = self.myImage1;
else if (tmpInt == 1)
self.selectSlideView.imageView.image = self.myImage2;
else if (tmpInt == 2)
self.selectSlideView.imageView.image = self.myImage3;
else if (tmpInt == 3)
self.selectSlideView.imageView.image = self.myImage4;
else if (tmpInt == 4)
self.selectSlideView.imageView.image = self.myImage5;
else if (tmpInt == 5)
self.selectSlideView.imageView.image = self.myImage6;
else if (tmpInt == 6)
self.selectSlideView.imageView.image = self.myImage7;
else if (tmpInt == 7)
self.selectSlideView.imageView.image = self.myImage8;
else if (tmpInt == 8)
self.selectSlideView.imageView.image = self.myImage9;
**/
}
我已經明確證實,imageArray是尺寸9的,而且它是從數組中選取正確的索引,但是如果從數組訪問,SelectSlideViewController不會顯示圖像。如果使用笨重的if-else語句進行訪問,它會顯示它。
我想看看你初始化和加載imageArray。 另外,不相關的,而不是tmpInt = [buttonArray indexOfObject:sender];你可以使用按鈕的標籤字段來存儲索引。 – mahboudz 2009-11-10 11:38:38
謝謝mahboudz - 我會看標籤字段。我已經發布了一些關於如何加載imageArray的代碼,進一步向下。 對於標籤 - 所有的UI對象都必須具有唯一的標籤,還是隻對同一類類型的UI對象很重要 - 即所有的UIButton都有獨特的標籤,但是UIImage使用相同的標籤號碼(例如)。 – trilithium 2009-11-10 12:43:36
您分配標籤,如果您使它們唯一,它們是唯一的。例如:myButton.tag = 99; – Jordan 2009-11-10 14:17:25