![](/img/trans.png)
[英]MVYMenuViewController: How to destroy a view controller which was instantiated from storyboard
[英]How do I call a custom init on a view controller instantiated from a Storyboard scene in interface builder?
如果我正在使用界面生成器來管理應用程序的故事板,那么在創建視圖/視圖控制器實例時如何調用自定義的init
選擇器?
例如,如果我在情節提要板場景中有一個視圖控制器,並且它的自定義類是UIViewController
子類,並且帶有一個自定義初始化程序(如initWithMediaType:
,它以NSUInteger
作為參數,那么如何在接口生成器中指定initWithMediaType:
傳遞給定參數應該被調用?
從storyboard
- (instancetype)initWithCoder:(NSCoder *)coder
storyboard
初始化UIViewController
,系統實際上會調用- (instancetype)initWithCoder:(NSCoder *)coder
。
因此,當您要進行自己的初始化時,應在自定義UIViewController
重寫- (instancetype)initWithCoder:(NSCoder *)coder
方法。
對於您的特定問題,可以考慮使用prepareForSegue:
並在其中設置您的mediaType:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
// Make sure your segue name in storyboard is the same as this line
if ([[segue identifier] isEqualToString:@"YOUR_SEGUE_NAME_HERE"])
{
// Get reference to the destination view controller
YourViewController *vc = [segue destinationViewController];
// Pass any objects to the view controller here, like...
[vc setMyObjectHere:object];
}
}
希望對您有所幫助。
如果要在Interface Builder中指定,請在UIViewController
子類mediaType
聲明為屬性,然后使用“用戶定義的運行時屬性”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.