我在XCode上創建了一個包含設置條件按鈕(即「播放到30」,「播放到20」等)的菜單的遊戲。我想讓這些按鈕創建一個與我的遊戲相同的ViewController
,唯一的區別是遊戲結束前必須達到多少點。對於每個設置而言,相同的ViewController
的倍數效率太低。有沒有解決的辦法?使用不同的按鈕來訪問相同的ViewController
回答
在您的遊戲視圖控制器爲使創建自定義的初始化:
// add in GameViewController.m
@implementation GameViewController
-(id)initWithLimit:(int)limit {
self = [super initWithNibName:@"NibName" bundle:nil];
if (self) {
_limit = limit;
}
return self;
}
// add in GameViewController.h
@interface GameViewController : UIViewController
@property (nonatomic) int limit;
@end
執行菜單的按鈕動作像這樣:
-(IBAction)play30 {
GameViewController *game = [[GameViewController alloc] initWithLimit:30];
// Handle game view here.
}
這個答案假定您創建GameViewController時的新實例用戶點擊按鈕。 如果你不希望每個按鈕錄音,那麼你可以創建你的菜單視圖控制器GameViewController屬性,並使用延遲實例爲遊戲視圖控制器的時間來實例化一個新的ViewControllerSubclass:
- (GameViewController *)game {
if (!_game) _game = ...;
return _game;
}
-(IBAction)play20 {
// Assuming game is a property.
self.game.limit = 20;
// Perform setup that expects the limit property to be set.
[self.game setup];
// Handle game view here.
}
希望這有助於:)
有沒有辦法做到這一點沒有nib文件?當我創建我的項目時,我決定取消選擇該選項。 @Benjamin – user2480376
是的,只需將自定義初始化程序添加到遊戲視圖控制器中,但使用self = [super init];相反,其餘的是相同的,如果你想我可以發佈另一個解釋更深入的答案。 –
我想我明白了。謝謝! – user2480376
- 1. 更改爲不同的VIewController按鈕按
- 2. 使用相同的toString()來訪問不同的子類變量
- 3. 使用的viewController打開相同的viewController
- 4. iOS:如何使用相同的Popover ViewController來控制兩個單獨的按鈕
- 5. 我可以使用不同的按鈕來調用相同的操作?
- 6. 具有相同ID的不同按鈕
- 7. 在不同的Tkinter框架中使用相同的按鈕
- 8. 你可以爲不同的按鈕使用相同的OnClickListener嗎?
- 9. UINavigationController - 相同的viewController
- 10. Swift3,如何在不同的viewController中使用相同的UITableView
- 11. 訪問2010年 - 相同的報告,不同的記錄來源
- 12. 如何使用相同的按鈕相同的模板
- 13. 如何從不同的表單訪問按鈕按鈕? C#
- 14. 使用不同按鈕的相同部分視圖
- 15. 多次使用相同的按鈕
- 16. 允許不同的按鈕訪問使用從jTable獲取的變量的類的相同實例
- 17. 使用相同的客戶端訪問相同的Web服務
- 18. 使用「親愛的imgui」相同的按鈕文本的按鈕
- 19. 不同的按鈕,但相同的AJAX調用塊上的UI
- 20. 在jquery中訪問具有相同名稱的單選按鈕
- 21. 5個按鈕訪問相同的啓動腳本
- 22. Asp.net相同的按鈕來編輯和使用jQuery
- 23. 通過相同的按鈕
- 24. 不能讓我的按鈕看起來在不同的瀏覽器相同
- 25. 如何從不同的TabBar項目調用相同的ViewController?
- 26. 使按鈕調用相同按鈕的方法
- 27. 如何在相同的viewController
- 28. 訪問不同的URL,同時顯示相同的URL
- 29. 使用同一頁面上的按鈕訪問php腳本?
- 30. 如何在使用UIPanGestureRecognizer的同一個按鈕時訪問uibutton
如果您繼續使用新的視圖控制器,則會創建一個實例 - 如果您返回,則會取消分配此視圖控制器。 – JDS