1

UIViewController クラスから派生した MasterViewController の 2 つのインスタンスを作成しました

_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 の両方のビューは同じです。ここで、どの UIViewController が現在選択されているか (例: タブバー上) を確認したいと思います。両方のオブジェクトの違いを見つけるにはどうすればよいですか?

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

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

isMemberOfClass: // も機能していません

違いを確認するには?

4

4 に答える 4

3

何をしているのかよくわかりませんが、_favItemListMasterVC と _masterViewController が UITabBar に追加された同じ VC を指している場合は、ポインターを比較するだけで確認できます。

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

if (viewController == _favItemListMasterVC)
{
    //the visible view controller is _favItemListMasterVC
}
于 2012-11-16T11:32:19.957 に答える
2
   - (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController {
if (viewController == _masterViewController)
{

}
else if (viewController == _favItemMasterVC)
{

}
}
于 2012-11-16T11:35:23.020 に答える
1

タグを使ってどれがどれであるかを確認できると思います。タグはUIViewのプロパティ2 つの xib ファイルにタグ値を設定します。コードを使用してタグを確認します。

于 2012-11-16T11:32:37.637 に答える
1

オブジェクトを比較するには、次も使用できます。

if([viewController isEqual:_favItemMasterVC])
于 2012-11-16T12:12:37.433 に答える