2012-11-16 42 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])