【发布时间】:2011-02-09 10:14:20
【问题描述】:
当用户点击警报视图中显示的自定义“后退”按钮时,我在返回导航到上一个视图控制器(在我的导航控制器的堆栈中)时遇到了一些问题。 我已经尝试了几种方法来做到这一点,但我一直无法做到。当该按钮被点击时,应用程序只是返回到弹出警报的控制器(就像用户按下“取消按钮”一样)。 希望你能通过这个示例代码理解我:
在 viewDidLoad 中,我弹出警报:
UIAlertView *alert = [[UIAlertView alloc]
initWithTitle:@"XXXXXX"
message:@""
delegate:self
cancelButtonTitle:@"OK"
otherButtonTitles:@"Back", nil];
[alert show];
[alert release];
然后,在视图控制器的代码中,我调用下一个操作来尝试返回:
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{
if (buttonIndex == 1)
{
[self.navigationController popViewControllerAnimated:YES];
}}
整个代码都被执行并且没有调试错误。 如果我没有正确解释我的问题,请告诉我,我会努力做得更好! (我是西班牙人,我的英语不是最好的)。 提前致谢。
我会尝试更好地解释它,以便向您表明我的问题可能更难解决...
我有一个导航控制器,它会在确定的时刻显示一个带有标签栏的视图。您可能知道无法在导航控制器中实现标签栏控制器,因此我使用了插入该标签栏的“自定义控制器”。
然后,从带有标签栏的那个视图(其中我已经添加了一些子视图)我想导航回(单击警报按钮)到没有标签栏的视图,我假设它是上一个视图导航的堆栈,正如我在导航栏中按下后退按钮时看到的那样......
我不知道现在是不是更清楚了,还是我让你更困惑了...... 如果您愿意,我可以尝试为您制作控制器图。 感谢您的帮助!
【问题讨论】:
-
您的描述已经足够了。让我们看看谁能帮忙。
-
您确定
self.navigationController不是nil?而且,导航控制器已经有一些视图控制器了? -
对我来说很好。检查你推送视图控制器的代码。
-
西蒙;我的“self.navigaitionController”不是零,听起来不错,但我已经检查过了,它对应于我现在的视图控制器。我也有一个带有后退按钮的导航栏,它工作正常,所以我认为视图控制器的堆栈设置正确。非常感谢您的贡献!
-
你在说哪个视图控制器,Max?启动警报的那个? (也谢谢你!)
标签: iphone navigation alert back