objective-c - 非 rootViewController View 中的 NavigationController 问题

标签 objective-c ios cocoa-touch

最后yesterday我的 UISearchBar 工作正常。突然间,我面临着另一个问题。

当我浏览 View 时,导航栏移动到右侧,并且相同的导航栏再次出现 -> 相同的标题和导航按钮位于左侧。 TableView保持不变。 第二次单击导航按钮时,是的,返回到上一个 View 。

我得到的注释是:在意外状态下完成导航转换。导航栏 subview 树可能会损坏。

我在这个论坛浏览了相关问题,但没有帮助我。

- (void)viewDidUnload
{
   [self setTableView:nil];
   [super viewDidUnload];
   [self setSearchController:nil];
   [self setSearchBar:nil];
}

- (void)tableView:(UITableView *)atableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
Kings *kingsObj;

if(atableView==self.tableView)
{
    kingsObj=[self.kingsArr objectAtIndex:[indexPath row]];
    Items *items=[[Items alloc]initWithNibName:@"Items" bundle:nil];
    items.kingID=kingsObj.kingID;
    items.king=kingsObj.kingName;
    [self.navigationController pushViewController:items animated:YES];
    [items release];
}
else
{
    kingsObj=[self.filteredItems objectAtIndex:[indexPath row]];
}

Items *items=[[Items alloc]initWithNibName:@"Items" bundle:nil];
items.kingID=kingsObj.kingID;
items.king=kingsObj.kingName;
[self.navigationController pushViewController:items animated:YES];
[items release];
}

好的。 PushViewController 方法位于 didSelectRowAtIndexPath 内部。现在可能有什么问题吗?之前表现还不错。

最佳答案

该错误是因为您推送了新的 ViewController 两次。您可以像这样简化 didSelectRowAtIndexPath 代码:

- (void)tableView:(UITableView *)atableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{
    Kings *kingsObj; 
    if (atableView==self.tableView) {
        kingsObj = [self.kingsArr objectAtIndex:[indexPath row]];
    } else {
        kingsObj = [self.filteredItems objectAtIndex:[indexPath row]];
    }

    Items *items=[[Items alloc]initWithNibName:@"Items" bundle:nil];
    items.kingID=kingsObj.kingID;
    items.king=kingsObj.kingName;
    [self.navigationController pushViewController:items animated:YES];
    [items release];
}

关于objective-c - 非 rootViewController View 中的 NavigationController 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8752011/

相关文章:

iphone - IOS 不编码加号 (+) 登录 x-www-form-urlencoded POST 请求?

iphone - UIWeb View : Absolute path for images in app documents folder

iOS 本地化 : plurals and NSNumberFormatter

ios - 通过 AVMetadataMachineReadableCodeObject 从 Aztec 条码读取原始字节会产生意外结果

ios - 点击文本字段、关闭键盘并再次点击文本字段时 UIWebView 崩溃

ios - 在drawRect中的if语句问题

iphone - 从头开始创建社交 iOS 应用

ios - 在 iOS 的外部显示器上显示全屏

ios - 如何通过拖动 ImageView 的右角来调整 ImageView 的大小和旋转 ImageView

iphone - 如何使用 UIPickerView