我不想添加子视图,而是将“self.view”更改为另一个视图,例如(警告视图)然后在用户抑制警告后我想切换回来。当我尝试切换回原始视图时,我只是因为我无法理解的原因而得到一个空白屏幕。
以下是我目前在其中一个UITableViewControllers
中的内容//Show warning view controller
self.warningViewControler = [[[WarningViewController alloc] init] autorelease];
self.view = self.warningViewController.view;
//Then later
self.view = self.tableView; //<< Dosnt work
答案 0 :(得分:0)
如果要更改视图,并且原始视图已定义/链接到XCode,则必须在将self.view更改为其他视图之前保留它。如果没有,原始视图将被释放并使用它可能会导致不良事件发生。
警告:
self.warningViewControler = [[[WarningViewController alloc] init] autorelease];
self.view = self.warningViewController.view
是一个糟糕的坏电话。因为您自动释放控制器但使用其视图。因此,在一段时间后,您将使用已发布的控制器保留视图。保留控制器并在不再需要它时自行释放它。
答案 1 :(得分:0)
这是我认为你想要做的更好的方式:
WarningViewController *warningViewController = [[WarningViewController alloc] initWithNibName:@"theRightNiborNil" bundle:nil];
[self presentModalViewController:warningViewController animated:YES];
// or if you don't need to support iOS4 any more:
[self presentViewController:warningViewController animated:YES completion:nil]
// and if you aren't using ARC yet, then [warningViewController release];
然后在您的WarningViewController中,您需要一些调用的操作:
[self dismissModalViewControllerAnimated:YES];
// or again if this is iOS5..
[self dismissModalViewControllerAnimated:YES completion:nil];
希望有所帮助。