可以說我有一個名爲ViewControllerOne
的UIViewController子類和另一個ViewControllerTwo
。聲明UIViewController而不知道子類?
我知道在另一個方法中,我需要的類是其中之一。是否有可能在一個方法中傳遞類,然後在它接收到的方法內部聲明一個UIViewController與哪個子類通過?
我想知道它是否可能,而不只是做這樣的事情,如果this = this,聲明視圖一,否則聲明視圖二。
謝謝。
可以說我有一個名爲ViewControllerOne
的UIViewController子類和另一個ViewControllerTwo
。聲明UIViewController而不知道子類?
我知道在另一個方法中,我需要的類是其中之一。是否有可能在一個方法中傳遞類,然後在它接收到的方法內部聲明一個UIViewController與哪個子類通過?
我想知道它是否可能,而不只是做這樣的事情,如果this = this,聲明視圖一,否則聲明視圖二。
謝謝。
你的方法可能是:
- (void)myMethod:(Class)class {
UIViewController *controller = [[class alloc] init];
}
或者其他類似的效果。
或者你可以創造一個你知道類是什麼控制器,並將其傳遞到方法:
UIViewController *controller = [[MYViewController alloc] init];
[self myMethod:controller];
然後,如果需要的話裏面的方法:
希望幫助! :)
喬希,除了喬治的回答,如果我理解你的權利,你應該知道關於下面的方法,每一個NSObject
有:
- (BOOL)isKindOfClass:(Class)aClass
所以,你可以檢查這樣
if ([myObject isKindOfClass:[ViewControllerOne class]])
{
//declare here ViewControllerOne
ViewControllerOne *myViewControllerOne = myObject;
}
else if ([myObject isKindOfClass:[ViewControllerTwo class]])
{
//declare here ViewControllerOne
ViewControllerTwo *myViewControllerOne = myObject;
}