2012-11-16 40 views
1

的對象我已創建從UIViewController類衍生比較實例或相同UIViewController類

_masterViewController = [[MasterViewController alloc] initWithNibName:@"MasterViewController_iPhone" bundle:nil]; 

// second instance with same class and duplicate nib view 
_favItemMasterVC = [[MasterViewController alloc] initWithNibName:@"favMasterViewController_iPhone" bundle:nil]; 

兩者MasterViewController_iPhone & favMasterViewController_iPhone視圖是相同一個MasterViewController的兩個實例。 現在我想檢查當前選擇哪個UIViewController(例如:在tabbar上)。 我如何找到兩個對象之間的區別?

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {

if ([viewController isKindOfClass:[_favItemListMasterVC class]] { // it is always called in both cases}

isMemberOfClass://也沒有工作

如何檢查有什麼區別?

回答

3

不知道我理解你在做什麼,但如果_favItemListMasterVC和_masterViewController都指向同一個風險投資加入到UITabBar,您可以檢查它簡單地比較指針

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController { 

if (viewController == _favItemListMasterVC) 
{ 
    //the visible view controller is _favItemListMasterVC 
} 
+0

謝謝,它的工作。 :) – HDdeveloper

1

我認爲你可以使用標籤檢查哪個是哪個。標記是UIView的屬性在兩個xib文件中設置標記值。並使用代碼檢查標籤。

2
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController { 
if (viewController == _masterViewController) 
{ 

} 
else if (viewController == _favItemMasterVC) 
{ 

} 
} 
+0

謝謝,它工作.. :) – HDdeveloper

1

要比較的對象也可以使用:

if([viewController isEqual:_favItemMasterVC])