2009-12-02 45 views
0

嗨,我是新來的IPhoneSDK,請耐心等待。iPhone SDK - 通過動畫在視圖之間傳遞變量

我基本上試圖做的是我有一個視圖有10個按鈕,分別命名爲'一'到'十'。我想要發生的事情是,當我點擊一個按鈕(例如:'九')時,它會轉到另一個視圖和動畫,然後在下一個視圖中,有一個標籤將顯示與哪個按鈕相對應的文本我以前點擊過。 (例如:我按下'九'按鈕,在下一頁上,標籤會說'九')

如果沒有太大的麻煩,它將不勝感激你的每個概念如何工作以及。

我基本上有我自己的代碼,但它肯定是混亂和錯誤的。

從概念上講,我的嘗試和迄今爲止學到的是:

1)我試圖動畫和切換使用addSubviews觀點,插入子視圖,setAnimations等我成功地切換視圖,但我不知道該怎麼傳遞數據。

2.)我學會了pushViewControllers。從我看到的教程中,我練習了一個分層表。我瞭解到只有UIViewControllers和UITableViewControllers是唯一可以推送的。我知道如何應用它,如果它在桌子上,但我不知道如何在視圖中應用它(因爲我的應用程序的按鈕隨機分散在屏幕上)

如果你能給我一個粗略的樣本我試圖做到,即使至少對於一步一步的概念,我也會非常感激,並會一生感謝你。我一直在爲此工作數週。沒有一個真正的人向我解釋這個問題是困難的。

請和謝謝你親切的先生/女士

回答

1

嘗試使用標籤。爲每個按鈕(1至10)分配一個標籤,並在單擊按鈕時獲取發件人的標籤。從這裏你可以知道哪個按鈕被點擊。請注意,只有當您對所有按鈕點擊使用相同的方法時才需要。

在要顯示的下一個視圖控制器中,創建NSString類型的屬性(如clickedButton)並將其合成到.m文件中。

獲得基於按鈕點擊了可變文本後,創建要顯示的視圖 - 控制的新對象(我想你已經做到這一點),並設置屬性此視圖 - 控制對象的clickedButton

NewViewController *nController = [[NewViewController alloc] initWithNibName:@"NewView"]; 
[nController setClickedButton:yourStringVariableWithButtonName]; 
[[self navigationController] pushViewController:nController animated:YES]; 

在NewViewController,設置標籤的文本clickedButton

[yourLabel setText:clickedButton]; 

希望有所幫助。

+0

當你提到navigationController,我是否自己輸入「navigationcontroller」,或者是否表示我的控制器是服務於導航控制器的? – Dan 2009-12-02 18:43:27

+0

也,我已經把你提供的代碼存根 - - (IBAction)buttonClicked; 我在做對吧? – Dan 2009-12-02 18:54:04

+0

navigationController是您在基於導航的應用程序中獲得的有關UINavigationController的參考。放入您使用的應用程序類型和您的應用程序中包含的代碼,以便我們可以幫助您找出可能出錯的地方。你有一個NewViewController嗎? – lostInTransit 2009-12-03 03:57:02

0

現在沒事了!我完全理解視圖控制器和導航控制器的概念!

雖然有一個問題。我有這個代碼,我打算在我的按鈕中分配。我只是不知道如何從每個按鈕的標籤,所以我可以用它:

- (IBAction爲)loadZodiac:(NSInteger的)標籤{

NSString *zodiac; 

switch (tag) { 
    case 1: 
     zodiac = @"Aries"; 
     break; 
    case 2: 
     zodiac = @"Taurus"; 
     break; 
    case 3: 
     zodiac = @"Gemini"; 
     break; 
    case 4: 
     zodiac = @"Cancer"; 
     break; 
    case 5: 
     zodiac = @"Leo"; 
     break; 
    case 6: 
     zodiac = @"Virgo"; 
     break; 
    case 7: 
     zodiac = @"Libra"; 
     break; 
    case 8: 
     zodiac = @"Scorpio"; 
     break; 
    case 9: 
     zodiac = @"Sagittarius"; 
     break; 
    case 10: 
     zodiac = @"Capricorn"; 
     break; 
    case 11: 
     zodiac = @"Aquarius"; 
     break; 
    case 12: 
     zodiac = @"Pisces"; 
     break; 
    default: 
     zodiac = @"None Selected"; 
     break; 
} 
lovescopesReading = [[LovescopesReading alloc] initWithNibName:@"LovescopesReading" bundle:nil]; 
lovescopesReading.title = zodiac; 
lovescopesReading.message = zodiac; 

Lovescopes6AppDelegate *delegate = [[UIApplication sharedApplication] delegate]; 
[delegate.navController pushViewController:lovescopesReading animated:YES]; 

}

0
NSString *zodiac; 

for (UIButton *button in [self.view subviews]) { 
    switch (button.tag) { 
     case 1: 
       zodiac = @"Aries"; 
       break; 
     case 2: 
       zodiac = @"Taurus"; 
       break; 
     .... 
     } 

} 
相關問題